64,199
社区成员
发帖
与我相关
我的任务
分享一、今日知识点
贪心:总是做出在当前看来最好的选择。也就是说不从整体最优上考虑,算法得到的是某种意义上的局部最小优解。
比如:对于一个全是整数的数组,我要找到其中的最大值,使得它们的乘积最大。我们可以找到最大的和次大的两个数相乘,得到的结果最大。
二、今日题解
最大乘积差:找到最大的数和次大的数与最小的数和次小的数就好了,剩下的😃
三角形的最大周长:从最大的长度开始找是否构成三角形就行。
数组拆分(1):使min(a,b)的总和最大,a,b之间的差距越小越好,升序排列后两两组成数对求和即可。
救生艇:运用贪心,尽可能利用上体重,使得体重大的同时最好还能再带上一个人,循环终止条件就是l<=r。
摆动排序(2):观察到偶数位置上的数总是比其两边的数要大,我们可以将这组数据分成两部分,较大的和较小的,将较大的填到偶数位上,将较小的填到奇数位上。
分发饼干:运用贪心的思想,尽可能让胃口大的得到满足,当无法满足时,果断放弃它让比它小的满足即可,直到饼干没有了或没人了。
最少操作使数组递增:操作数就是相邻两个数的差值,枚举整个元素,让前一个元素总是小于后一个元素。
三、今日收获
贪心即总是设法找到当前处理的最好办法,要想在面对任意对象的组合下找到最好的,可以根据题意对数据进行分析,进行排序或其他操作,找到每一步的最优解进行某种局部上关系的累积即可得到近似于全局的最优解。
四、今日疑问