算法-贪心算法

柔光的暖阳◎ 2024-03-24 21:14 142阅读 0赞

1、 分糖果问题

  1. public int candy (int[] arr) {
  2. int n = arr.length;
  3. int[] nums = new int[n];
  4. for (int i = 0; i < n; i++) {
  5. nums[i] = 1;
  6. }
  7. for (int i = 1; i < n; i++) {
  8. if (arr[i] > arr[i - 1]) {
  9. nums[i] = nums[i - 1] + 1;
  10. }
  11. }
  12. int res = nums[n - 1];
  13. for (int i = n - 1; i >= 1; i--) {
  14. if (arr[i - 1] > arr[i] && nums[i-1] <= nums[i]) {
  15. nums[i - 1] = nums[i] + 1;
  16. }
  17. res += nums[i - 1];
  18. }
  19. return res;
  20. }

2、 主持人调度

  1. public int minmumNumberOfHost (int n, int[][] startEnd) {
  2. int res = 0;
  3. int length = startEnd.length;
  4. int[] start = new int[length];
  5. int[] end = new int[length];
  6. for (int i = 0; i < startEnd.length; i++) {
  7. start[i] = startEnd[i][0];
  8. end[i] = startEnd[i][1];
  9. }
  10. Arrays.sort(start, 0, length);
  11. Arrays.sort(end, 0, length);
  12. int j = 0;
  13. for (int i = 0; i < length; i++) {
  14. if (start[i] >= end[j]) {
  15. j++;
  16. } else {
  17. res ++;
  18. }
  19. }
  20. return res;
  21. }

发表评论

表情:
评论列表 (有 0 条评论,142人围观)

还没有评论,来说两句吧...

相关阅读

    相关 贪心算法

    贪心算法也称贪婪算法,其核心思想就是:每步都采用最优的做法。        贪心算法所得到的结果往往不是最优的结果(有时候是最优解),但都是相对接近最优解的。       

    相关 贪心算法

    一:贪心算法介绍 1. 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。 2.

    相关 贪心算法

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所做出的是在某种意义上的局部最优解。举一个简单的贪心法例子,平时

    相关 贪心算法

    1.钞票支付问题,1元,2元,5元,10元,20元,50元,100元钞票无穷张,使用这些钞票怎么支付,最少需要多少张。 思路:尽可能使用面额较大的金额数目。反证法:若不成立,

    相关 贪心算法

    一、什么是贪心算法 贪心算法,又称贪婪算法(Greedy Algorithm),是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优解出发来考虑,它