力扣第238周周赛(上)

  • 题目
  • 思路与算法
  • 代码实现
  • 写在最后

题目

    1. K 进制表示下的各位数字总和
    1. 最高频元素的频数

思路与算法

  1. 第一题是数学题,考察各进制与十进制数的相互转换,不多赘述,连续取余求和即为答案。
  2. k次操作机会,操作只能加一,排序后进行滑动窗口的实现即可。判断标准即为当前k次操作是否可以将前面所有较小的数字增加至和当前窗口右侧持平。(滑动窗口写法和二分法实现,都是很经典很常用的方法,务必熟练)。注意数据量比较大,使用long long类型比较省事。

代码实现

  1. K 进制表示下的各位数字总和
class Solution {public:int sumBase(int n, int k) {// 十进制转换任意进制的概念int ans = 0;while (n != 0) {ans += (n % k);n = n / k;}return ans;}
};
  1. 最高频元素的频数
    滑动窗口写法:
class Solution {public:int maxFrequency(vector<int>& nums, int k) {sort(nums.begin(),nums.end());int res = 1;int left = 0;int right = 0;long long  win_sum = 0;int len = nums.size();for (; right < len; ++right ) {// 扩右边win_sum += nums[right];// 缩左边while (win_sum + k < (long)nums[right] * (long)(right - left + 1)) {win_sum -= nums[left];left++;}res = max(res,(right - left + 1));}return res;}
};

二分实现(用到前缀和):

class Solution
{public:int maxFrequency(vector<int>& nums, int k) {int n = nums.size();sort(nums.begin(), nums.end());// 前缀和vector<long long> presum(n + 1, 0);for (int i = 1; i < n + 1; i ++){presum[i] = presum[i-1] + nums[i-1];}int res = 1;for (int i = 1; i < n + 1; i ++){int L = 1;int R = i;// 二分while (L < R){int mid = L + R >> 1;if( ( (long long)nums[i-1] * (i - mid + 1) - (presum[i] - presum[mid-1]) )  <= k )R = mid;elseL = mid + 1;}res = max(res, i - L + 1);}   return res;}
};

写在最后

冲!

20210426:力扣第238周周赛(上)相关推荐

  1. 20210427:力扣第238周周赛(下)

    力扣第238周周赛(下) 题目 思路与算法 代码实现 写在最后 题目 所有元音按顺序排布的最长子字符串 最高建筑高度 思路与算法 依旧是滑动窗口,再熟悉滑动窗口的写法即可. 不加解释,本题参考零神专业 ...

  2. 20211118:力扣第267周周赛(上)

    力扣第267周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 买票需要的时间 反转偶数长度组的节点 思路与算法 买票需要的时间 处理思路:直接进行模拟即可,找到位置k上的人需要买的票的数量,排 ...

  3. 20210627:力扣第247周周赛(上)

    力扣第247周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 两个数对之间的最大乘积差 循环轮转矩阵 思路与算法 两个数对之间的最大乘积差:排序相减即可 循环轮转矩阵:模拟即可,注意逆时针和顺 ...

  4. 20210621:力扣第246周周赛(上)

    力扣第246周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 字符串中的最大奇数 你完成的完整对局数 思路与算法 字符串中的最大奇数 :从末尾开始找奇数即可.从头开始算则最大 你完成的完整对局 ...

  5. 20210612:力扣第244周周赛题解(上)

    力扣第244周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 判断矩阵经轮转后是否一致 使数组元素相等的减少操作次数 思路与算法 判断矩阵经轮转后是否一致:本题的前置题目是这道46:.旋转图像 ...

  6. 20210601:力扣第243周周赛(上)

    力扣第243周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 检查某单词是否等于两单词之和 插入后的最大值 思路与算法 检查某单词是否等于两单词之和:直接转化比较即可 插入后的最大值:负数,则 ...

  7. 20210422:力扣第237周周赛题解记录(上)

    力扣第237周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 判断句子是否为全字母句 雪糕的最大数量 思路与算法 没什么需要解释的,这周这两题过于水了... 代码实现 判断句子是否为全字母句 ...

  8. 20210307:力扣第231周周赛(上)

    力扣第231周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 检查二进制字符串字段 构成特定和需要添加的最少元素 思路与算法 题意读懂即可,意思是包含01序列与否,单独的一个1也符合要求 第二 ...

  9. 20210217:力扣第228周周赛(上)

    力扣第228周周赛(上) 题目 思路与算法 代码实现 写在最后 题目 生成交替二进制字符串的最少操作数 统计同构子字符串的数目 思路与算法 第一题需要注意不能直接翻译题意,直接翻译的代码存在先入为主定 ...

最新文章

  1. JSONObject 和 JSONArray 获取value 的方法
  2. Python开发【第八篇】:网络编程 Socket
  3. linux只显示文件,ls如何只显示文件名
  4. 【Python 小知识】[:-1] 和 [::-1]
  5. ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值
  6. mysql重装要删注册表_Mysql重装问题—删除注册表
  7. python 多人连接mysql 进行事务操作 对mysql加锁与释放锁
  8. 调试跟踪利器---strace
  9. iis php的mime映射_iis MIME 映射添加.php文件映射类型肿么定义
  10. Notepad++格式化JSON
  11. 如何使用VS2012进行简单程序的DEBUG(入门级)
  12. scrum 11.6
  13. RabbitMQ学习——整合Spring AMQP、SpringBoot以及Spring Cloud Stream
  14. 抓包工具之fiddler
  15. 数据结构试题期中期末考试【含答案】
  16. 故障诊断仪采集发动机EMS故障的报文与故障码记录
  17. idc机房安装服务器系统,IDC机房运维之(硬件篇)
  18. oppo的sd卡在哪里打开_oppo手机sd卡怎么打开 oppo手机sd卡怎样打开
  19. 51单片机电路原理图_(51单片机)课设项目2-超声波测距(SRF04、LCD1602、蜂鸣器报警电路)...
  20. 自由软件到底值多少钱?

热门文章

  1. Android 支持主线 Linux 内核指日可待?
  2. 写给新手看的 Spring Boot 入门学习指南
  3. 代码英雄之云间战争:寡头时代,路在何方?
  4. 即使在微软 Azure 上,Linux 也大有一统天下之势!
  5. 前端圈小可爱 Vue 的自白:我年少成名,却又屡陷 React、Angular 混战
  6. 程序员该怎么做,才能成为 coding 王者?
  7. 腾讯被迫下架《怪物猎人世界》;传谷歌将支持 Win10 ;苹果或将复活 MagSafe | 极客头条...
  8. 12306 被质疑过度获取用户隐私;直播答题外挂横行;阿里云辟谣称绝不做虚拟货币 | 一周业界事
  9. 12306 被质疑过度获取用户隐私,不授权还买不了票
  10. tkinter中text插入_tkinter做一个体重档案