20220307:力扣第283场周赛(上)

力扣第283场周赛(上)

题目

    1. Excel 表中某个范围内的单元格
      在这里插入图片描述
    1. 向数组中追加 K 个整数
      在这里插入图片描述

思路与算法

  1. 第一题直接模拟即可,注意作为char的数字也是可以直接自加运算的。
  2. 第二题贪心题,也可以利用set的去重特性来做,当然直接排序贪心模拟也是没有问题的。注意书写细节即可。

代码实现

    1. 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};
                // cout<< tmp <<endl;
                res.push_back(tmp);   
            }
        }
        return res;
    }
};
    1. 向数组中追加 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;
    }
};

写在最后

  1. 保持节奏!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IMMUNIZE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值