9.29 LeetCode 3304、3300、3301

思路:

⭐进行无限次操作,但是 k 的取值小于 500 ,所以当 word 的长度大于 500 时就可以停止操作进行取值了

如果字符为 'z' ,单独处理使其变为 'a'

得到得到操作后的新字符串,和原字符串拼接

cpp 复制代码
class Solution {
public:

    string word = "a";

    char kthCharacter(int k) {
        while(word.size()<500){
            string new_word = word;
            for(int i=0; i<word.size(); i++){
                
                new_word[i] = new_word[i] + 1;
                if(new_word[i] == 'z' + 1) new_word[i] = 'a';
                 
            }
            word = word + new_word;
        }
        return word[k-1];
    }
};

注:

(1)字符串 string str = "a" 是双引号,单个字符是单引号

(2)数组下标从零开始

(3)判等是==

思路:

cpp 复制代码
class Solution {
public:
    int minElement(vector<int>& nums) {
        int n = nums.size();
        int min = 1e4;
        for(int i=0; i<n; i++){
            int a = nums[i];
            //nums[i] = a%10 + a/10%10 + a/100%10+ a/1000%10 + a/10000%10;
            int sum = 0;
            while(nums[i] != 0){
                sum = sum + nums[i] % 10;
                //cout << sum << '\n';
                nums[i] = nums[i] / 10;
            }
            if(sum < min) min = sum;
        }
        return min;
    }
};

注:

(1)1e4 = 10的4次方 = 10000

(2)求数组的长度:nums.size()

(3)通用求一个数各个位的和:

cpp 复制代码
            int sum = 0;
            while(nums[i] != 0){
                sum = sum + nums[i] % 10;
                cout << sum << '\n';
                nums[i] = nums[i] / 10;
            }
cpp 复制代码
class Solution {
public:
    long long maximumTotalSum(vector<int>& maximumHeight) {
        int n = maximumHeight.size();
        sort(maximumHeight.begin(), maximumHeight.end());  //默认从小到大
        long long max_sum = 0;

        while(n){
            n--;
            if(n>=1){
                max_sum = max_sum + maximumHeight[n];
                if(maximumHeight[n-1] >= maximumHeight[n]) maximumHeight[n-1] = maximumHeight[n] - 1;
                if(maximumHeight[n-1] == 0) return -1;
            }
            else{
                max_sum = max_sum + maximumHeight[n];
            }
            
            

        }
        return max_sum;
    }
};

注:

(1)排序 sort(maximumHeight.begin(), maximumHeight.end());

(2)求最后总和的时候可能会超过 int 的范围,用long long

(3)while 中的 n ,要注意和下面 n-1 的大小,分情况讨论

相关推荐
s09071362 分钟前
紧凑型3D成像声纳实现路径
算法·3d·声呐·前视多波束
可爱的小小小狼4 分钟前
算法:二叉树遍历
算法
d111111111d1 小时前
在STM32函数指针是什么,怎么使用还有典型应用场景。
笔记·stm32·单片机·嵌入式硬件·学习·算法
AI科技星2 小时前
质量定义方程常数k = 4π m_p的来源、推导与意义
服务器·数据结构·人工智能·科技·算法·机器学习·生活
摇摆的含羞草2 小时前
哈希(hash)算法使用特点及常见疑问解答
算法·哈希算法
仰泳的熊猫2 小时前
1077 Kuchiguse
数据结构·c++·算法·pat考试
LYFlied3 小时前
【每日算法】LeetCode 19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
踏浪无痕3 小时前
计算机算钱为什么会算错?怎么解决?
后端·算法·面试
夏乌_Wx3 小时前
练题100天——DAY28:找消失的数字+分发饼干
数据结构·算法
studytosky4 小时前
深度学习理论与实战:反向传播、参数初始化与优化算法全解析
人工智能·python·深度学习·算法·分类·matplotlib