当前位置: 首页 > wzjs >正文

如何自己设计一个网站媒介星软文平台

如何自己设计一个网站,媒介星软文平台,泉州最专业手机网站建设开发,他人委托我做网站题目链接:1419. 数青蛙 - 力扣(LeetCode) 给你一个字符串 croakOfFrogs,它表示不同青蛙发出的蛙鸣声(字符串 "croak" )的组合。由于同一时间可以有多只青蛙呱呱作响,所以 croakOfFro…

题目链接:1419. 数青蛙 - 力扣(LeetCode)

给你一个字符串 croakOfFrogs,它表示不同青蛙发出的蛙鸣声(字符串 "croak" )的组合。由于同一时间可以有多只青蛙呱呱作响,所以 croakOfFrogs 中会混合多个 “croak” 

请你返回模拟字符串中所有蛙鸣所需不同青蛙的最少数目。

要想发出蛙鸣 "croak",青蛙必须 依序 输出 ‘c’, ’r’, ’o’, ’a’, ’k’ 这 5 个字母。如果没有输出全部五个字母,那么它就不会发出声音。如果字符串 croakOfFrogs 不是由若干有效的 "croak" 字符混合而成,请返回 -1 。

示例 1:

输入:croakOfFrogs = "croakcroak"
输出:1 
解释:一只青蛙 “呱呱” 两次

示例 2:

输入:croakOfFrogs = "crcoakroak"
输出:2 
解释:最少需要两只青蛙,“呱呱” 声用黑体标注
第一只青蛙 "crcoakroak"
第二只青蛙 "crcoakroak"

示例 3:

输入:croakOfFrogs = "croakcrook"
输出:-1
解释:给出的字符串不是 "croak" 的有效组合。

提示:

  • 1 <= croakOfFrogs.length <= 105
  • 字符串中的字符只有 'c''r''o''a' 或者 'k'

算法思路:

模拟⻘蛙的叫声。

当遇到 'r' 'o' 'a' 'k' 这四个字符的时候,我们要去看看每⼀个字符对应的前驱字符,

有没有⻘蛙叫出来。如果有⻘蛙叫出来,那就让这个⻘蛙接下来喊出来这个字符;如果没有,直接返回 -1 ,

当遇到 'c' 这个字符的时候,我们去看看 'k' 这个字符有没有⻘蛙叫出来。如果有,就让

这个⻘蛙继续去喊 'c' 这个字符;如果没有的话,就重新搞⼀个⻘蛙。

class Solution {public int minNumberOfFrogs(String croakOfFrogs) {//把其转换为字符数组char[] croak=croakOfFrogs.toCharArray();String t="croak";int n=t.length();int[] hash=new int[n];//构建一个hash表存放字符串的下标Map<Character,Integer>  index=new HashMap<Character,Integer>();for(int i=0;i<n;i++){index.put(t.charAt(i),i);}//先看c字符for(char ch:croak){if(ch==t.charAt(0)){if(hash[n-1]!=0){hash[n-1]--;} hash[0]++;}else{int i=index.get(ch);if(hash[i-1]==0) {return -1;}hash[i-1]--;hash[i]++;}}for(int i=0;i<n-1;i++){if(hash[i]!=0){return -1;}}return hash[n-1];}
}

题目链接:75. 颜色分类 - 力扣(LeetCode) 

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。

    必须在不使用库内置的 sort 函数的情况下解决这个问题。

    示例 1:

    输入:nums = [2,0,2,1,1,0]
    输出:[0,0,1,1,2,2]
    

    示例 2:

    输入:nums = [2,0,1]
    输出:[0,1,2]
    

    提示:

    • n == nums.length
    • 1 <= n <= 300
    • nums[i] 为 01 或 2

     

    在 cur 往后扫描的过程中,保证:

            [0, left] 内的元素都是 0 ;

            [left + 1, cur - 1] 内的元素都是 1 ;

            [cur, right - 1] 内的元素是待定元素;

            [right, n] 内的元素都是 2 。

    算法流程:

            a. 初始化 cur = 0,left = -1, right = numsSize ;

            b. 当 cur < right 的时候(因为 right 表⽰的是 2 序列的左边界,因此当 cur 碰到right 的时候,说明已经将所有数据扫描完毕了),⼀直进⾏下⾯循环:

    根据 nums[cur] 的值,可以分为下⾯三种情况:

            i. nums[cur] == 0 ;说明此时这个位置的元素需要在 left + 1 的位置上,因此交换 left + 1 与 cur 位置的元素,并且让 left++ (指向 0 序列的右边界),cur++ (为什么可以 ++ 呢,是因为 left + 1 位置要么是 0 ,要么是 cur ,交换完毕之后,这个位置的值已经符合我们的要求,因此 cur++ );

            ii. nums[cur] == 1 ;说明这个位置应该在 left 和 cur 之间,此时⽆需交换,直接让 cur++ ,判断下⼀个元素即可;

            iii. nums[cur] == 2 ;说明这个位置的元素应该在 right - 1 的位置,因此交换right - 1 与 cur 位置的元素,并且让 right-- (指向 2 序列的左边界), cur 不变(因为交换过来的数是没有被判断过的,因此需要在下轮循环中判断)

            c. 当循环结束之后:

            [0, left] 表⽰ 0 序列;

            [left + 1, right - 1] 表⽰ 1 序列;

            [right, numsSize - 1] 表⽰ 2 序列。

    class Solution {public void swap(int[] nums,int i,int j){int tmp=nums[i];nums[i]=nums[j];nums[j]=tmp;}public void sortColors(int[] nums) {int left=-1,right=nums.length,i=0;while(i<right){if(nums[i]==0){swap(nums,++left,i++);}else if(nums[i]==1){i++;}else{swap(nums,--right,i);}}}
    }

    http://www.dtcms.com/wzjs/370189.html

    相关文章:

  • python基础教程课本太原网站seo
  • 好的网站具备条件互联网营销师题库
  • 手机自适应网站恶意点击广告软件
  • php网站制作教程网络营销推广的手段
  • 网络推广有哪些免费渠道网络seo招聘
  • 服务中心网站建设方案seo优化工程师
  • 公司手机app开发报价湖南正规关键词优化首选
  • Java怎么自己做网站产品推广的目的和意义
  • 网站建设案例企业产品推广词
  • 微商城网站建设平台网站推广技巧和方法
  • 做企业网站要多长时间网站开发软件
  • 我自己怎么建网站百度搜索热度
  • 彩票网站给实体店做代销云盘搜
  • 政府网站开发报价深圳网络公司推广平台
  • 网站建设公司哪有如何去推广
  • 网站建设综合实训日志重庆百度关键词推广
  • 一诺互联 网站建设专业做加盟推广的公司
  • 注册公司网上申请入口网站百度上做优化一年多少钱
  • 网站banner怎么做动态aso优化的主要内容
  • 仿牌网站stp营销战略
  • 网站文字很少怎么做优化邀请注册推广赚钱
  • 等保二级网站建设方案百度系优化
  • 洛阳市政建设网站怎么制作网站
  • 网站建设平台计划书西安seo网站优化
  • 公司做网站的费用属于什么费用如何自制网站
  • 做电影网站侵权吗郑州seo代理公司
  • 佛山做网站建设今日军事新闻头条
  • 谷歌上怎样做网站seo薪资seo
  • 北京东站百度top风云榜
  • 网页设计培训(可0基础)做seo的公司