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

北京电子商务app网站建设大兴深圳品牌策划公司排行

北京电子商务app网站建设大兴,深圳品牌策划公司排行,千里博客 wordpress,东莞推广优化公司2023每日刷题#xff08;五#xff09; Leetcode—2530.执行K次操作后的最大分数 向上取整思想 参考了这篇文章 有人肯定会问#xff0c;这个向上取整为什么是这样来的。接下来我简单讲解一下。 数学式#xff1a; x y 数学式#xff1a;\frac{x}{y} 数学式#xff1a…2023每日刷题五 Leetcode—2530.执行K次操作后的最大分数 向上取整思想 参考了这篇文章 有人肯定会问这个向上取整为什么是这样来的。接下来我简单讲解一下。 数学式 x y 数学式\frac{x}{y} 数学式yx​有以下两种情况 x能整除y则 x y \frac{x}{y} yx​就是向上取整和向下取整结果一致的情况不需要额外转换。也就是说 x y \frac{x}{y} yx​的向上取整和向下取整都是它本身例如 6 3 2 \frac{6}{3}2 36​2 6 3 \frac{6}{3} 36​向下取整和向上取整结果都一样即为2x不能整除y则 x y \frac{x}{y} yx​是向下取整结果不符合我们的需求。例如 5 2 2 \frac{5}{2}2 25​2,但是我们需要它的向上取整的值就不能直接用/。 解释一下 ( x y − 1 ) / y (x y - 1) / y (xy−1)/y 如果x能整除y那么 ( x y − 1 ) / y (x y - 1) / y (xy−1)/y的结果就等价于 x / y x / y x/y例如 6 3 2 \frac{6}{3}2 36​2如果x不能整除y那么 ( x y − 1 ) / y (x y - 1) / y (xy−1)/y结果就是向上取整的值。例如 x 5 , y 2 x5,y2 x5,y2,则 ( 5 2 − 1 ) / 2 3 (5 2 - 1) / 2 3 (52−1)/23即为 5 2 \frac{5}{2} 25​向上取整的值。 你也可以这么理解 若x能整除y例如x2y,所以向上整除为2若x不能整除y例如x2y1也可以是 [ 2 y 1 , 3 y ) \left[2y1, 3y\right) [2y1,3y)所以 ( x y − 1 ) / y ( 2 y 1 y − 1 ) 3 (x y - 1) / y (2y 1 y - 1) 3 (xy−1)/y(2y1y−1)3 直接法实现代码 void max(int *nums, int numsSize, int *e) {int i 0;int max nums[0];int cnt 0;for(i 1; i numsSize; i) {if(max nums[i]) {max nums[i];cnt i;}}*e cnt; }long long maxKelements(int* nums, int numsSize, int k){int i 0;long long ans 0;int cur 0;for(; i k; i) {max(nums, numsSize, cur);ans nums[cur];nums[cur] (nums[cur] 2) / 3;}return ans; }测试结果 因为我的时间复杂度太大了即 O ( k n ) O(kn) O(kn)主要是也没要求时间复杂度啊。。。接下来用最大堆的方法做也就是大根堆 最大堆实现代码 void swap(int *a, int *b) {int tmp *a;*a *b;*b tmp; }void downAdjustHeap(int* heap, int low, int high) {// 相当于双亲为i,左孩子为2*i1,右孩子为2*i2,因为这里数组从下标0开始int i low, j i * 2 1;while(j high) {if(j 1 high heap[j 1] heap[j]) {j j 1;}if(heap[j] heap[i]) {swap(heap[j], heap[i]);i j;j j * 2 1;} else {break;}} }void createHeap(int* arr, int n) {// 建立大顶堆int i;for(i n / 2 - 1; i 0; i--) {downAdjustHeap(arr, i, n - 1);} }long long maxKelements(int* nums, int numsSize, int k){// 建立大顶堆,即最大堆createHeap(nums, numsSize);long long ans 0;int i;for(i 0; i k; i) {ans nums[0];// 向上取整nums[0] (nums[0] 2) / 3;downAdjustHeap(nums, 0, numsSize - 1);}return ans; }测试结果 之后我会持续更新如果喜欢我的文章请记得一键三连哦点赞关注收藏你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 ↖(▔▽▔)↗感谢支持
http://www.pierceye.com/news/232099/

相关文章:

  • 网站建设中html网页软件开发定制外包服务商
  • 山东seo网站推广河南定制网站建设企业
  • 网站建设文献文档单产品网站建设
  • 唐山网站建设自主开发宁波北仑做公司网站
  • 廊坊网页模板建站专业网站建设公司排名
  • 广州本地生活appseo百度百科
  • 成都产品网站建设镜像网站是怎么做的
  • 网站建设需求分析范例中国建设信息网站
  • 提供网站建设工具的品牌如何自己开个网站平台
  • 站长工具seo综合查询怎么去掉百家号查询排名数据查询
  • 网站怎么做商家定位注册网站不用手机短信验证的网站
  • 郑州医疗网站建设线下推广团队
  • 合肥网站推广 公司哪家好阿里云注销网站
  • 手机网站调用分享网站用户体验存在问题
  • 淘宝网官方网站路飞和女帝做h的网站
  • app网站设计制作360网站 备案
  • 网站建设多久能学会内丘网站建设案例
  • 网站设计要素 优帮云卖东西专业网站网上
  • 做古风人物小图的网站或软件东莞附近的网络推手公司
  • 东莞专业的单位网站建设江苏网站建设定制
  • 宁夏建设工程造价站网站东营网站seo外包
  • 推销网站建设今天重大新闻文字
  • 网站上线过程网站开发系统需求说明书
  • it外包行业江门seo网络推广
  • 深圳石岩建网站判断网站模板版本
  • 梅州市住房和城乡建设局网站东营网站
  • 免费手机端网站模板下载工具windows怎么做网站
  • 新乡网站自然优化本地电脑如何做网站服务器
  • 网站备案是域名备案还是服务器备案辽宁天一建设有限责任公司网站
  • 做网站的软件是什么阿里云官网入口