1.刪除排序數組中的重復項

- 思路解析:本題的主要目的是刪除重復項,限制是:1.數組是排序數組;2.必須原地修改;那其實只需要遍歷然后把不同項前移
- 代碼:
class Solution {
public int removeDuplicates(int[] nums) {
int i = 0, j = 0;//j標記已修改數組的位置
while(i < nums.length-1)
{
if(nums[i] == nums[i+1]){
i++;
}else{
nums[++j] = nums[++i];//已經默認nums[0]不修改
};
}
return j+1;
}
}
2.買賣股票的最佳時機Ⅱ

- 思路解析:本題的目的是獲取最大的利潤;條件是可以完成任意次交易;那其實只需要在每一個遞增的階段都做一次買賣。
- 代碼:
class Solution {
public int maxProfit(int[] prices) {
int i = 0, profit = 0;
while(i<prices.length - 1){
if(prices[i]<prices[i+1]){//當可以獲得利潤,就做一次交易
profit += prices[i+1]-prices[i];
}
i++;
}
return profit;
}
}
3.旋轉數組
