350.两个数组的交集Ⅱ
这题我还是用双指针做出来了。。又学了个新函数copyofrange
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
int n1=nums1.length;
int n2=nums2.length;
int[] ans=new int[1000];
int i=0,j=0,k=0;
Arrays.sort(nums1);
Arrays.sort(nums2);
while(iif(nums1[i] i++;
else if(nums1[i]>nums2[j])
j++;
else{
ans[k++]=nums1[i];
i++;j++;
}}
return Arrays.copyOfRange(ans,0,k);}
}
121.买卖股票的最佳时机
这题我知道dp,但还是不会设状态方程。还是太弱了。
//dp[i]表示截止到i,价格的最低点是多少 dp[i]=min(dp[i-1],nums[i])
int max = 0;
int[] dp = new int[prices.length];
dp[0] = prices[0];
for (int i = 1; i < prices.length; i++) {
dp[i] = (dp[i - 1] < prices[i]) ? dp[i - 1] : prices[i];
max = (prices[i] - dp[i]) > max ? prices[i] - dp[i] : max;
}
return max;