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

贪心算法day(1)

1.将数组和减半的最少操作次数

链接:. - 力扣(LeetCode)

思路:创建大跟堆将最大的数进行减半

注意点:double t = queue.poll()会将queue队列数字减少一个后再除以2,queue.offer(queue.poll()/ 2)

class Solution {public int halveArray(int[] nums) {//如何建立大根堆??PriorityQueue<Double> queue = new PriorityQueue<>((a,b)->b.compareTo(a));double sum = 0.0;int count = 0;for(int x:nums){queue.offer((double) x);sum+=x;}sum /= 2.0;while(sum > 0){double t = queue.poll() / 2.0;sum -= t;count++;queue.offer(t);}return count;}
}

2.最大数

链接:. - 力扣(LeetCode)

主要问题:如何将数字改为字符串以及排序 

class Solution {public static String largestNumber(int[] nums) {//把数字转化成字符串 把两个字符串拼接在一起比较字符串的字典序//ab > ba a在前b在后 ab < ba b在前a在后//转化字符串int n = nums.length;String[] str = new String[n];for (int i = 0; i < n; i++) {str[i] = ""+nums[i];}//排序Arrays.sort(str,(a,b)->{return (b+a).compareTo(a+b);});//提取结果StringBuffer ret = new StringBuffer();for(String x: str){ret.append(x);}if(ret.charAt(0) == '0'){return "0";}return ret.toString();}
}

 3.摆动序列

链接:. - 力扣(LeetCode)

思路:把数子画成波峰波谷 左右端点以及波峰波谷就是我们要找的最大摆序列

问题:如何表示波峰波谷以及什么情况下添加最大摆动序列

class Solution {public int wiggleMaxLength(int[] nums) {int n = nums.length;if(n < 2){return n;}int left = 0;int count = 0;for (int i = 0; i < n - 1; i++) {int right = nums[i+1] - nums[i];if(right == 0) continue;if(left * right <= 0){count++;}left = right;}return count + 1;}
}

http://www.lryc.cn/news/470880.html

相关文章:

  • 窗口函数sql使用总结
  • python单因素分析
  • 「C/C++」C++ STL容器库 之 std::list 双向链表容器
  • 应用程序框架进阶<HarmonyOS第一课>
  • 【C++】vector<string>-动态数组存储多个string
  • 66Analytics 汉化版,网站统计分析源码,汉化前台后台
  • 蓝桥杯单片机STC15F2K60S2第十四届省赛代码详细讲解(附完整代码)
  • [免费]SpringBoot+Vue智慧校园(校园管理)系统[论文+源码+SQL脚本]
  • 景区导航地图怎么实现?基于LBS与3D GIS的智慧景区导航导览系统技术路线
  • RedisIO多路复用
  • C++的相关习题(2)
  • C++《vector的模拟实现》
  • 无人机避障——路径规划篇(一) JPS跳点搜索算法A*算法对比
  • OpenCV ORB角点检测匹配和偏移计算
  • 图文详解ChatGPT-o1完成论文写作的全流程
  • 在线体验Sketch中文版,免费下载即刻上手!
  • Redis——缓存
  • RHCSA笔记三
  • 【python】sorted() list.sort()
  • 训练集alpaca、sharegpt格式
  • Hive的数据存储格式
  • Linux Rsyslog 配置
  • python实现放烟花效果庆祝元旦
  • 模型训练识别手写数字(二)
  • 深入Vue2
  • opencv-rust 系列3: Create_mask
  • Go语言初识
  • Android Activity SingleTop启动模式使用场景
  • PHP 代码执行相关函数
  • 五周年,继续破浪前行