当前位置: 首页 > article >正文

9.29 LeetCode 3304、3300、3301

在这里插入图片描述

在这里插入图片描述

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

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

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

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)判等是==

在这里插入图片描述

在这里插入图片描述

思路:

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)通用求一个数各个位的和:

            int sum = 0;
            while(nums[i] != 0){
                sum = sum + nums[i] % 10;
                cout << sum << '\n';
                nums[i] = nums[i] / 10;
            }

在这里插入图片描述

在这里插入图片描述

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 的大小,分情况讨论


http://www.kler.cn/news/334563.html

相关文章:

  • Kubernetes云原生存储解决方案之 Rook Ceph实践探究
  • 【可答疑】基于51单片机的智能台灯(含仿真、代码、报告、演示视频等)
  • 用Spring Boot搭建IT交流与学习平台
  • 机器学习系列篇章0 --- 人工智能机器学习相关概念梳理
  • 【复习】CSS中的选择器
  • 定时器TIM输出比较及其应用
  • 幂等性接口实现
  • 前端公共资源CDN存储库大全
  • Pikachu-unsafe upfileupload-getimagesize
  • 【深度学习】— softmax回归、网络架构、softmax 运算、小批量样本的向量化、交叉熵
  • 【C++ STL】手撕vector,深入理解vector的底层
  • 【分布式微服务云原生】掌握分布式缓存:Redis与Memcached的深入解析与实战指南
  • 【RabbitMq源码阅读】分析RabbitMq发送消息源码
  • stm32定时器中断和外部中断
  • 深入探讨指令调优的局限性
  • 删除GitHub仓库的fork依赖 (Delete fork dependency of a GitHub repository)
  • 简单介绍Wiki和历史
  • pytorch和yolo区别
  • Spring Boot新闻推荐系统:性能优化策略
  • 10.2 如何解决从复杂 PDF 文件中提取数据的问题?