Leetcode刷题 2021.02.15
Leetcode刷题 2021.02.15
- Leetcode1758 生成交替二进制字符串的最少操作数
- Leetcode1760 袋子里最少数目的球
- Leetcode1759 统计同构子字符串的数目
Leetcode1758 生成交替二进制字符串的最少操作数
给你一个仅由字符 ‘0’ 和 ‘1’ 组成的字符串 s 。一步操作中,你可以将任一 ‘0’ 变成 ‘1’ ,或者将 ‘1’ 变成 ‘0’ 。
交替字符串 定义为:如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。例如,字符串 “010” 是交替字符串,而字符串 “0100” 不是。
返回使 s 变成 交替字符串 所需的 最少 操作数。
回家本来以为能好好复习,没想到过年总是又各种各样的琐事。昨天同学聚会到凌晨,实在没动力更博了,断更一天。/(ㄒoㄒ)/~~
今天每日一题还是简单的,因为可能的字符串只有"10……"或者"01……"开头这两种情况。因此只要统计这两种情况的最小值就行了。
class Solution {public int minOperations(String s) {char[] arr = s.toCharArray();int res1 = 0, res2 = 0;//统计"10"开头的情况for(int i = 0; i < arr.length; i++){if (i % 2 == 0){if (arr[i] == '0') res1++;}else{if (arr[i] == '1') res1++;}}//统计"01"开头的情况for(int i = 0; i < arr.length; i++){if (i % 2 == 0){if (arr[i] == '1') res2++;}else{if (arr[i] == '0') res2++;}}//取二者最小值即可return Math.min(res1, res2);}
}
Leetcode1760 袋子里最少数目的球
给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。
你可以进行如下操作至多 maxOperations 次:
选择任意一个袋子,并将袋子里的球分到 2 个新的袋子中,每个袋子里都有 正整数 个球。
比方说,一个袋子里有 5 个球,你可以把它们分到两个新袋子里,分别有 1 个和 4 个球,或者分别有 2 个和 3 个球。
你的开销是单个袋子里球数目的 最大值 ,你想要 最小化 开销。
请你返回进行上述操作后的最小开销。
昨天周赛也没参加,今天看了下题目,还是比较简单的一次周赛。
看到最大最小,可以想到二分查找逼近。就是做了很多次的二分查找模板题了。
class Solution {public int minimumSize(int[] nums, int maxOperations) {int i = 1, j = 1_000_000_000;//二分模板while(i < j){int mid = i + (j - i) / 2;if (helper(nums, maxOperations, mid)){j = mid;}else{i = mid + 1;}}return i;}private boolean helper(int[] nums, int maxOperations, int target){int i = 0;//统计数组中的元素是否可以在maxOperations次操作下//分割为最大为targetwhile (i < nums.length){if (nums[i] > target){//如果target为4, nums[i]为8, 那么只需要一次操作就能分为两个为4的元素//如果nums[i]为9,就需要三次分为4,4,1的元素int temp = nums[i] / target, mod = nums[i] % target;maxOperations -= mod == 0 ? temp - 1: temp;if (maxOperations < 0) return false;}i++;}return true;}
}
Leetcode1759 统计同构子字符串的数目
给你一个字符串 s ,返回 s 中 同构子字符串 的数目。由于答案可能很大,只需返回对 109 + 7 取余 后的结果。
同构字符串 的定义为:如果一个字符串中的所有字符都相同,那么该字符串就是同构字符串。
子字符串 是字符串中的一个连续字符序列。
还是比较简单的滑动窗口题,就是遍历连续相同的字符长度就行了。字符串的数目可以用高斯求和公式。
class Solution {public int countHomogenous(String s) {char[] arr = s.toCharArray();long res = 0;int i = 0, n = arr.length, mod = (int)1e9+7;while (i < n){long count = 1;//获取连续相同的字符串的长度while (i < n - 1 && arr[i] == arr[i + 1]){count++;i++;}i++;//加上同构字符串长度res += (1 + count) * count / 2;//取模res %= mod;}return (int) res;}
}
Leetcode刷题 2021.02.15相关推荐
- Leetcode刷题 2021.02.26
Leetcode刷题 2021.02.26 Leetcode1178 猜字谜 Leetcode869 重新排序得到 2 的幂 Leetcode1676 二叉树的最近公共祖先 IV Leetcode11 ...
- Leetcode刷题 2021.01.22
Leetcode刷题 2021.01.22 Leetcode1042 不邻接植花 Leetcode1010 总持续时间可被 60 整除的歌曲 Leetcode1091 二进制矩阵中的最短路径 Leet ...
- LeetCode刷题记录02——新手村专辑(一)
新手村专辑 题目 1480一维数组的动态和 我的思路 我的代码 提交结果 代码优化 总结 383赎金信 我的思路 我的代码 提交结果 代码优化 总结 题目 1480一维数组的动态和 1480一维数组的 ...
- LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) 目录 LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) ...
- LeetCode刷题笔记- 15.三数之和
LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...
- 一个算法笨蛋的12月leetCode刷题日记
类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...
- C#LeetCode刷题-程序员面试金典
本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...
- leetcode刷题目录总结
题目 题目 技巧 相似的题目 其他 1. 无序数组中找出目标为target的两个数 先定义下一个数,然后找两位的数是否存在 高频, 大厂刷题班, 第27节 2.逆序链表两数相加 链表.各位加法 高频, ...
- Leetcode刷题
刷题 leetcode 1.两数之和 #哈希表 class Solution:def twoSum(self, nums: List[int], target: int) -> List[int ...
- leetcode刷题总结
专栏 专栏 c语言基础 数据结构与算法 博客 分类 数据结构 算法 leetcode总结 错题 面试题 10.02. 变位词组 罗马数字转整数 c语言基础 二维数组 sizeof的用法 宏定义:取最大 ...
最新文章
- 大规模web服务开发技能
- blob转file对象_C++核心准则C.41:构造函数生成的对象应该被完全初始化
- 如何更改tomcat7及以上版本内存设置
- Hessian序列化复杂对象
- .NET各版本一览表
- IBM并购网络视频会议商WebDialogs 加入Lotus Sametime
- java窗口向mysql加信息_Java中如何实现向DBC方式向表中添加数据
- 渐变颜色Qt学习:QPainter之渐变填充
- codevs——1507 酒厂选址
- matlab2c使用c++实现matlab函数系列教程-cat函数
- Python3 学习第十二弹: 补充something
- Oracle项目管理系统之合同基本信息
- 计算机控制电缆单价,zr-djyvrp3X2X0.5阻燃计算机控制电缆单价
- AppStore审核
- python 动画场景_clarisse电影级CG场景渲染中文教学
- Matlab代码运行基础文章讲解
- 移民找老张解析:美国绿卡与美国公民身份的区别
- 什么是SVN?SVN的简介安装和使用
- 自学SQL网题库答案
- XPwn黑客破解秀,16位网红见证黑掉小米