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

无锡网站服务百度seo不正当竞争秒收

无锡网站服务,百度seo不正当竞争秒收,如何通过网站标题找网站,网站建设标语题目链接: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/384812.html

    相关文章:

  • 附近广告喷绘制作公司福州seo视频
  • 常德网站公司百度做广告费用
  • 济南做网站哪家公司好营业推广怎么写
  • 即墨市网站建设南昌seo公司
  • 河口企业网站开发公司白度
  • 网站建设方案书 备案看广告赚钱一天50元
  • 专门做恐怖的网站网站域名ip地址查询
  • 做网站图片和文字字体侵权企业的网络推广
  • 程序员帮忙做放贷网站百度排名优化工具
  • wordpress 浏览器缓存电脑上突然出现windows优化大师
  • 免费插画素材网站宁阳网站seo推广
  • 南京自媒体公司aso优化技巧大aso技巧
  • 动易网站管理系统教程永久免费自动建站
  • 那些网站可以找得到做货代的友链大全
  • 做跨境的网站中国万网官网登录
  • 邢台做移动网站百度关键词竞价价格
  • 金溪那里可以做网站百度投放
  • 网站一键生成手机网站百度信息流广告推广
  • wordpress 大型站2024年小学生简短小新闻
  • 慧聪网怎样做网站友情链接腾讯新闻发布平台
  • 学校网站建设市场如何做推广推广技巧
  • 做网站的入什么科目怎么制作自己的网站
  • 学做网站要代码长尾关键词在线查询
  • 建立一个网站商城需要多久时间b站是哪个网站
  • 做高仿包的网站有哪些西安抖音seo
  • 管理公司网站建设数字营销网站
  • 域名注册解析管理网站谷歌账号
  • 青海网站建设价格低seo排名赚挂机赚钱软件下载
  • 自己网站怎么做百度优化长春网站制作方案定制
  • wordpress地产南宁seo优化公司排名