20200724:力扣197周周赛上
力扣197周周赛上
- 题目
- 思路与算法
- 代码实现
- 复杂度分析
题目
好数对的数目
仅含 1 的子串数
思路与算法
- 第一题直接暴力或者使用map来存值,注意到我们只需要找到这个数字出现的次数num,那么其好数对的个数为排列组合的C(2,N),将其依次存入map并依次计算这个组合数添加入res即可。复杂度可以从暴力的N²降低到到N。
- 第二题也是需要仔细看清楚规律,碰到连续的n个1,则添加(n+1)*n/2到res中去即可。注意因为数值较大,需要将各变量都声明为long类型,否则会因为溢出计算错误。
代码实现
- 好数对的数目
暴力
class Solution {public int numIdenticalPairs(int[] nums) {int len = nums.length;int count = 0;for (int i = 0; i < len - 1; i++) {for (int j = i + 1; j < len; j++) {if (nums[i] == nums[j]) {count++;}}}return count;}
}
map
class Solution {public int numIdenticalPairs(int[] nums) {int res = 0;Map<Integer,Integer> map = new HashMap<>();for (int num : nums) {map.put(num,map.getOrDefault(num,0) + 1);}for (Map.Entry<Integer,Integer> entryset : map.entrySet()) {int val = entryset.getValue();res += val * (val - 1) / 2;}return res;}
}
- 仅含 1 的子串数
class Solution {public int numSub(String s) {char[] ch = s.toCharArray();long count = 0;long res = 0;long div = 1000000007;for (int i = 0; i < ch.length; i++) {char c = ch[i];if (c == '0') {res += (count * (count + 1) / 2);res %= div;count = 0;} else {count++;}}res += (count * (count + 1) / 2);res %= div;return (int) res;}
}
复杂度分析
- 第一题暴力法为O(N²),map法降低到O(N)
- 第二题纯粹的模拟,只需便利一遍,因此为O(N)
20200724:力扣197周周赛上相关推荐
- 20200705:力扣196周周赛上
力扣196周周赛上 题目 思路与算法 代码实现 复杂度分析 判断能否形成等差数列 题目 所有蚂蚁掉下来前的最后一刻 请注意仔细看给的示例: 思路与算法 题目给定了数组长度大于等于2,也就是说,先排序, ...
- 20200701:力扣194周周赛上
力扣194周周赛上 题目 思路与算法 代码实现 复杂度分析 题目 数组异或操作 保证文件名唯一 注意这个示例: 思路与算法 半个月没写博客了,太懒了,不能再拖延了,今天开始全部带上C++和Java的双 ...
- 20200616:力扣193周周赛上
力扣193周周赛上 题目 思路与算法 代码实现 写在最后 题目 一维数组的动态和 不同整数的最少数目 思路与算法 第一题没啥好说的,动态和,dp最基础的东西. 第二题主要是一个贪心的过程,既然要剩下的 ...
- 20200612:力扣192周周赛上
力扣192周周赛上 题目 思路与算法 代码实现 复杂度分析 题目 1. 重新排列数组 2. 数组中的k个最强值 思路与算法 第一题不需要太多思路,最简单的就是list,list将要求的顺序的数依次收入 ...
- 20200505:力扣151周周赛上
力扣151周周赛上 题目 思路与算法 代码实现 题目 查询无效交易 2.比较字符串最小字母出现频次 思路与算法 第一题直接将我们需要的这四组数据包装成一个Transaction对象,主要是注意书写问题 ...
- 20200503:力扣187周周赛上
力扣187周周赛上 题目 思路与算法 代码实现 复杂度分析 题目 旅行终点站 是否所有 1 都至少相隔 k 个元素 思路与算法 第一题我没做出来,说来惭愧,菜的离谱.看大神的题解豁然开朗,这题类似之前 ...
- 20201007:力扣209周周赛题解记录(上)
力扣209周周赛题解记录(上) 题目 思路与算法 代码实现 复杂度分析 题目 特殊数组的特征值 奇偶树 思路与算法 第一题单纯的暴力就行,应该是可以用二分之类的改善复杂度,没必要赘述,直接上暴力遍历, ...
- 20200910:力扣204周周赛题解上(Java/Python/Cpp)
力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...
- 20200814:力扣201周周赛题解记录上
力扣201周周赛题解记录上 题目 思路与算法 代码实现 写在最后 题目 整理字符串 找出第 N 个二进制字符串中的第 K 位 思路与算法 第一题这种类似消消乐的东西都是直接用栈来实现的,注意代码细节 ...
最新文章
- JSP内置对象-request
- 服务器送料器显示通讯异常,西门子贴片机常见故障处理思路和方法
- ML之FE:结合Kaggle比赛的某一案例细究特征工程(Feature Engineering)思路框架
- python操作json数据_Python操作JSON数据代码示例
- 关于页面的多种自适应布局——两列布局
- 信息学奥赛一本通(1399:甲流病人初筛)
- java常见的内存溢出
- 大学计算机基础上机实践报告,大学计算机基础上机实践报告书册.doc
- Flutter实战1 --- 写一个天气查询的APP
- c语言学生管理p1指向编译错误,在ubuntu下用C语言编写一个学生管理系统,编译时出错,紧急求救!!!...
- 人工智能与机器学习学习笔记(三)
- SQL Server 2012 安装教程
- RTP发送h264文件,用vlc播放
- JPBC部分API说明
- 对于开发软件的NABCD分析
- [转帖] 部分收费的Oracle JDK VS 完全免费的OpenJDK
- python中怎样在图片上画线段_python 实现PIL模块在图片画线写字
- 主流商业智能(BI)工具的比较(二):Power BI与Domo
- 约瑟夫问题与魔术(九)——魔术《五重巧合之皇家同花顺》
- 护卫神主机大师Linux添加绑定ssl证书
热门文章
- 谷歌、IBM 们的“量子争霸”迷局
- “近一个月”、“近三个月”这种查询如何处理更精确?
- @开发者,一文搞懂什么是 C# 计时器!|CSDN 博文精选
- 为什么我写了一万小时的代码,却仍然成不了架构师?
- 44 年前的今天,改变世界的 TA 诞生了!
- 可折叠的 iPhone 要来了?
- 2018,如何从技术小白升级到大牛程序员?
- TIOBE 12 月排行榜:古老的 C 和后起之秀 Kotlin,谁是年度编程语言之王?
- oracle 不查加锁的记录,查询记录时给oracle记录加锁
- 水桶平分 java_关于java:桶排序算法代码问题