双指针:
leetcode167. 两数之和 II - 输入有序数组(双指针)
leetcode 345.反转字符串中的元音字母(双指针 java)(有地方不懂)
leetcode 680.验证回文字符串 II(双指针 java)
leetcode 88.合并两个有序数组(双指针 java)
排序:
leetcode215.数组中的第k个最大元素(快排/堆排序 java)***
只写了快排,还没有写堆排序。代码的partition方法要在纸上进行模拟,不容易理解,多回顾。
贪心:
简单。
**有一处不懂,
Arrays.sort(intervals,Comparator.comparingInt(o -> o[1]));
贪心的经典方法。
leetcode 452. 用最少数量的箭引爆气球(java 贪心)
方法同leetcode 435(上一题)。
leetcode 121.买卖股票的最佳时机(java 贪心)
贪心,经典。
leetcode 122.买卖股票的最佳时机||(Java 贪心)
贪心,和121不一样,要学会灵活思考。
模拟,要学会设置变量,灵活解决问题。
简单贪心,需要注意的是判断语句要放在循环内部。可用动态规划做 。
注意判断nums[i-2]和nums[i]的关系
两个变量a和maxx,用来记录当前数和之前的最大值,结果的最大数。
难度中等,思想巧妙,要回顾。
二分查找
注意判断条件l和h和返回值的选择。
leetcode 34.在排序数组中查找元素的第一个和最后一个位置(Java 二分查找 medium 重要)
重要**,内涵二分查找的详细介绍,要回顾。
注意判断条件l<=h的原因,以及return h;
leetcode 744.寻找比目标字母大的最小字母(Java 二分查找 easy)
二分查找,但是和一般的不一样,这是求大于target的最小值,判断条件有所不同。
leetcode 540.有序数组中的单一元素(Java 二分查找 medium)
注意判断条件l<h,并且mid要一直为偶数。
leetcode 278.第一个错误的版本(Java 二分查找 easy)
h=mid,所以判断条件l<h。
leetcode 153.寻找旋转排序数组中的最小值(Java 二分查找 medium)
判断nums[mid]和nums[h]大小的条件不太寻常。