大家好,我是晴天学长,这是一个细节题和一部分的思维题哈!
文章来源:https://www.toymoban.com/news/detail-665754.html
2) .算法思路
k-avoiding 数组的最小总和
1,填充一个1到n 的Boolean的数组
要n个数,但是数组大小不能确定。
所以建立1000的大小。
2.遍历筛选,如果数组中有这个的话,标记为false。
3.监测是否是false,true就sum++(前缀和)。文章来源地址https://www.toymoban.com/news/detail-665754.html
3).代码示例
class Solution {
public int minimumSum(int n, int k) {
boolean[] temp = new boolean[1000];
int sum = 0;
for (int i = 1; i <= k&&i<=n; i++) {
if (k - i <= temp.length && k - i != i && temp[i] == false) {
temp[k - i] = true;
}
}
//前缀和
int i = 1;
int j = 0;
while (true){
if (temp[i] == false){
sum+=i;
j++;
if (j == n){
return sum;
}
}
i++;
}
}
}
4).总结
- 控制好标记数组的大小。
到了这里,关于LeetCode算法心得——k-avoiding 数组的最小总和(标记数组)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!