zoukankan      html  css  js  c++  java
  • LeetCode 1046. 最后一块石头的重量 (贪心)

    有一堆石头,每块石头的重量都是正整数。

    每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:

    如果 x == y,那么两块石头都会被完全粉碎;
    如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。
    最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。

    提示:

    1 <= stones.length <= 30
    1 <= stones[i] <= 1000

    贪心
     1 int lastStoneWeight(int* stones, int stonesSize){
     2     if(stonesSize==1) return stones[0];
     3     while(1){
     4         int maxvalue=stones[stonesSize-1];
     5         int maxi=stonesSize-1;
     6         for(int i=stonesSize-1;i>=0;i--){
     7             if(stones[i]>maxvalue){
     8                 maxvalue=stones[i];
     9                 maxi=i;
    10             }
    11         }
    12         int t=stones[stonesSize-1];
    13         stones[stonesSize-1]=stones[maxi];
    14         stones[maxi]=t;
    15         maxvalue=stones[0];
    16         maxi=0;
    17         for(int i=0;i<stonesSize-1;i++){
    18             if(stones[i]>maxvalue){
    19                 maxvalue=stones[i];
    20                 maxi=i;
    21             }
    22         }
    23         t=stones[stonesSize-2];
    24         stones[stonesSize-2]=stones[maxi];
    25         stones[maxi]=t;
    26         if(stones[stonesSize-2]==stones[stonesSize-1]){
    27             stones[stonesSize-2]=0;
    28         }else if(stones[stonesSize-2]>stones[stonesSize-1]){
    29             stones[stonesSize-2]-=stones[stonesSize-1];
    30         }else{
    31             stones[stonesSize-2]=stones[stonesSize-1]-stones[stonesSize-2];
    32         }
    33         stonesSize--;
    34         if(stonesSize==1) break;
    35     }
    36     return stones[0];
    37 }
  • 相关阅读:
    Spring Boot 7:配置文件信息读取
    Spring Boot 6:自定义filter
    Spring AOP:Java动态代理和CGlib
    Spring AOP:概念
    设计模式(二)---策略模式
    设计模式(一)--装饰模式
    java并发编程实战笔记
    剑指offer java -查找旋转数组的最小数字
    读书计划
    协议初学
  • 原文地址:https://www.cnblogs.com/wydxry/p/11044035.html
Copyright © 2011-2022 走看看