array easy summery
来源:互联网 发布:网络拾音头 编辑:程序博客网 时间:2024/06/10 04:54
array(easy) summary
1、其中关于计算数组中两个数字的和(LeetCode1. Two Sum)还是看一个string中有没有重复,都是用map<int,int>index或者map<char,int>index.将原来的值作为键值,将下标作为值(LeetCode1.Two Sum),或者用index[nums[i]]++进行计数()
for(inti=0;i<nums.size();i++)
{index[nums[i]]=i;}
2、LeetCode26Remove Duplicates from Sorted Array、LeetCode27Remove Duplicates from Sorted Array都是移动问题,此类问题就是添加一个哨兵,然后根据题目要求对于哨兵的位置进行操作。(需要注意的是这里是要替代原有位置,不能仅仅是删除重复)而且不是重复或要求元素时正常移动i,遇到重复或要求元素,对pos进行操作。
3、leetcode35 Search Insert Position这种插入,查找的题目都是用二分法。
3、leetcode53Maximum Subarray方法一:(动态规划)遍历查找每段的最大sum。如果当前段的sum已经小于0,则重新开启一段。 注意把max设为第一个值。方法二:(分治法)
4、LeetCode66PlusOne 关于数的加减法 都是要进行每一位剩下的数和进位的数不断地向前循环。
5、LeetCode88 Merge Sorted Array采用后项插入
6、LeetCode118Pascal'sTriangle和LeetCode118Pascal's Triangle2都是找规律计算问题,LeetCode118Pascal's Triangle2注意有些声明和初始化是应该在循环内还是在循环外。
7、121.Best Time to Buy and Sell Stock其实是在已经便利过的前面找最小的,这时可以一边遍历,一边更新最小值. 122. Best Time to Buy and Sell Stock 2采用的是取巧计算的方法。
8、167.Two Sum II - Input array is sorted用的是双指针问题,通过判断来不断地调整指针。
9、169.Majority Element和LeetCode1.Two Sum中的是一个类型的(map计数)。
10、189. Rotate Array数组翻转注意reverse里的start和end.因为在rotate里要使用翻转的开始和结束的位置。
11、217.Contains Duplicate和LeetCode1.Two Sum中的是一个类型的(map计数)。
12、219. Contains Duplicate II 这个题要注意就是index[nums[i]]=i;是记录了重复数字第一次最新的在数组里的位置。当if(index.find(nums[i])!=index.end()&&(i-index[nums[i]])<=k)第二次在发发现,当前位置i和第一次最新的在数组里的位置的差就是他们之间的间隔。
13、283. Move Zeroes和LeetCode26中的是一个类型的。(哨兵问题)
14、414. Third Maximum Number两种方法,第一种,三个数,不断更新初始化要用长整型long的最小值,否则当数组中有INT_MIN存在时,程序就不知道该返回INT_MIN还是最大值first。第二种set里只有三个数不断更新。
时间复杂度是O(nlogn),不符合题目要求,纯粹是拓宽下思路哈,利用了set的自动排序和自动去重复项的特性,很好的解决了问题,对于遍历到的数字,加入set中,重复项就自动去掉了,如果此时set大小大于3个了,那么我们把set的第一个元素去掉,也就是将第四大的数字去掉,那么就可以看出set始终维护的是最大的三个不同的数字,最后遍历结束后,我们看set的大小是否为3,是的话就返回首元素,不是的话就返回尾元素
其实求前n大数 最好的方法是快速排序。
15、448. Find All NumbersDisappeared in an Array注意数组中元素和下标的对应关系。利用数组中存在的元素的值作为下标,将此下标的元素变为负数,如果元素没有出现,那么他的下标所对应的的数值就不为0,这就是失踪的元素。
16、485. Max Consecutive Ones最大值的迭代问题。
- array easy summery
- summery
- array easy
- leetcode_189_Rotate Array(easy)(C++)
- CRCK: Array 1.1 (easy)
- CRCK array 1.5 (easy)
- Array of Leetcode: EASY
- Array Easy Production
- My summery
- Leetcode[Easy] - Merge Sorted Array
- [Leetcode 189, easy] Rotate Array
- <LeetCode><Easy> 189 Rotate Array
- Merge Sorted Array(easy)
- 189. Rotate Array [easy] (Python)
- 【Easy】88. Merge Sorted Array
- Easy 189题 Rotate Array
- [easy]561. Array Partition I
- work summery(5)
- 单例设计模式的分析(懒汉,饿汉式)
- 说说JavaScript的prototype(内容源自《你所不知道的JavaScript》)
- Weex 端口被占用 解决方法
- codeforces 343 D. Water Tree (树链剖分)
- opencv合并图片
- array easy summery
- 在IDEA中实战Git
- 道和开发笔记
- C++中虚继承
- 资深linux 马哥视频
- java学习第六天之构造函数
- Petr and a calendar_Codeforces
- 关于jQuery配合CSS3实现背景图片滑动实例
- Oracle Data Integrator 12cR1 (12.1.3.0.0)安装过程