Java“速学通”之算法
leetCode 题目
初级算法
- 删除排序数组中的重复项
1 | class Solution { |
- 解题思路:
- 快慢指针,初始慢指针在0,快指针从1开始遍历,处理点时启动慢指针。
- 两两对比,将不同的数覆盖到前面相同的数。
- 快指针遍历完,返回慢指针+1的值为新数组的长度。
- 买卖股票的最佳时机 II
1 | class Solution { |
- 解题思路:
贪心策略
遍历数组,如果当前价格比前一天高,则计算利润。
- 旋转数组
朴素右移(超出时间限制)
1 | class Solution { |
使用临时数组
1 | class Solution { |
三次反转(原地,高效)
1 | public void rotate(int[] nums, int k) { |
知识点:
- 取余 % : 输出[0,%值-1)
作用:k = k % nums.length限制K的取值范围<=nums.length-1 - 解题思路:
- 朴素右移
- 创建临时数组
- 三次反转
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 微光zc的网络小窝!
评论









