个人网站怎么建立步骤,湛江个人网站建设,溧水区住房和城乡建设厅网站,WordPress 黛米付1.将数组和减半的最少操作次数
链接#xff1a;. - 力扣#xff08;LeetCode#xff09;
思路#xff1a;创建大跟堆将最大的数进行减半
注意点#xff1a;double t queue.poll()会将queue队列数字减少一个后再除以2#xff0c;queue.offer(queue.poll(#xff09;/…1.将数组和减半的最少操作次数
链接. - 力扣LeetCode
思路创建大跟堆将最大的数进行减半
注意点double t queue.poll()会将queue队列数字减少一个后再除以2queue.offer(queue.poll(/ 2) class Solution {public int halveArray(int[] nums) {//如何建立大根堆??PriorityQueueDouble queue new PriorityQueue((a,b)-b.compareTo(a));double sum 0.0;int count 0;for(int x:nums){queue.offer((double) x);sumx;}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 (ba).compareTo(ab);});//提取结果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[i1] - nums[i];if(right 0) continue;if(left * right 0){count;}left right;}return count 1;}
}