![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题笔记
文章平均质量分 72
安娜安呐
心之所向,素履以往
展开
-
leetcode刷题笔记75---颜色分类
题目要求:算法分析:本题是荷兰国旗问题。我的思路最开始也是双指针,只不过是比较指针所指向值的大小再进行变化。即循环判断条件为nums[i]和nums[j]的大小再做出相应的判断,但是这种方法在测试的过程中[2,0,1]这个数组没有通过,而且要求判断的条件为nums[i]==nums[j]时还需要附加判断条件:值为0,1还是2.较为繁琐,由于条件的控制不能完全涵盖每一种情况因此不能采用这种比较指针所指向值的大小再进行变化。————————————————————————————————————在变原创 2021-03-27 12:22:47 · 163 阅读 · 0 评论 -
leetcode刷题笔记---leetbook数组类算法之做好初始定义(java实现)
今天看了一些刷题笔记和大神的刷题方法,决定按照分类来刷题,第一个内容就是数组,leetcode上共有342个数组题目,有挑选性地刷一段时间,循序渐进吧。以下小题均为leetbook中数组类算法的全部题目,以此为我这段时间数组训练的开端叭!leetbook数组类算法:1.移动零解题思想:将所有0移动到数组末尾,也就是把不为0的数依次移动到前面来,最后将空余出来的位置赋值为0.需要两个计数器,第一个计数器用来记录0的个数,第二个计数器用来记录非0的个数,在一次循环遍历中如果当前值为0,记录0的计数原创 2021-03-21 17:56:05 · 252 阅读 · 1 评论 -
leetcode刷题笔记4---寻找两个正序数组的中位数(Java实现)
题目要求:算法分析:这个题目实现起来较为简单,首先把两个数组合并成一个数组,再对这个新的数组排序(题目中给的正序感觉可能会有更节省时间的数据结构,我在此处并没有考虑),排序结束后直接按下标取数。要注意的是新数组的元素个数奇偶情况不同计算式也不同,直接if判断即可。在第一次编码中,我在合并数组时没有写for循环,而是用了一个函数System.arraycopy(),执行结果是正确的,但是提交后就报错,目前对这个报错不明觉厉。修改成经典for循环后就正确了。源代码:最开始运行失败的代码:class原创 2021-03-20 15:20:03 · 165 阅读 · 0 评论 -
leetcode刷题笔记3---无重复字符的最长字串(Java实现)
题目要求:算法分析:本题采用“滑动窗口法”。源代码:class Solution { public int lengthOfLongestSubstring(String s) { int num=0, nummax=0, n=0; //分别存放本次最大字符串长度,所有最大字符串长度,子串开始位置 Set<String> setting = new HashSet<String>(); //一个集合存放子串原创 2021-03-19 21:26:07 · 149 阅读 · 0 评论