1.一维数组动态和:自己做出来了
给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。
请返回 nums 的动态和。
解题思路:我是用的双重for循环来做,赋值到一个新的数组,官方给的方法是用++对原数组进行循环
//我的思路:
class Solution {
public int[] runningSum(int[] nums) {
int[] sum = new int[nums.length];
for(int i=0;i<nums.length;i++)
{
if(i==0)
{
sum[i]=nums[i];
}
else
{
for(int j=0;j<=i;j++)
{
sum[i]=sum[i]+nums[j];
}
}
}
return sum;
}
}
//官方思路:
class Solution {
public int[] runningSum(int[] nums) {
int n = nums.length;
for (int i = 1; i < n; i++) {
nums[i] += nums[i - 1];//这句循环++的操作是核心
}
return nums;
}
}
/* 作者:LeetCode-Solution
链接:https://leetcode.cn/problems/running-sum-of-1d-array/solution/yi-wei-shu-zu-de-dong-tai-he-by-leetcode-flkm/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/
2.不同整数的最少数目:
给你一个整数数组 arr
和一个整数 k
。现需要从数组中恰好移除 k
个元素,请找出移除后数组中不同整数的最少数目。
解题思路:先把每个整数出现的次数和整数放入一个map表中,然后重要的是对map表进行排序,这样才在删除时先删除出现次数少的,留下不同整数的最少数目,考察Map,List排序
//官方思路:
class Solution {
public