题目
-
- Excel 表中某个范围内的单元格
-
- 向数组中追加 K 个整数
思路与算法
- 第一题直接模拟即可,注意作为char的数字也是可以直接自加运算的。
- 第二题贪心题,也可以利用set的去重特性来做,当然直接排序贪心模拟也是没有问题的。注意书写细节即可。
代码实现
-
- Excel 表中某个范围内的单元格
class Solution {
public:
vector<string> cellsInRange(string s) {
vector<string> res;
for (char a = s[0]; a <= s[3]; ++a) {
for (char b = s[1]; b <= s[4]; ++b) {
string tmp = {a,b};
res.push_back(tmp);
}
}
return res;
}
};
-
- 向数组中追加 K 个整数
class Solution {
public:
long long minimalKSum(vector<int>& nums, int k) {
sort(nums.begin(),nums.end());
long long sum = (long long)(1 + k) * k / 2;
long long cur = k;
if (nums[0] > k)
return sum;
for (int i = 0 ; i< nums.size();i++){
if (i > 0 && nums[i-1] == nums[i])
continue;
if (nums[i] <= cur){
cur++;
sum -= nums[i] - cur;
}
}
return sum;
}
};
写在最后
- 保持节奏!