leetcode1046. 最后一块石头的重量(Java)

本文探讨了处理石头重量问题的两种算法解决方案。通过升序排序并计算两最大值之差,迭代直至只剩一块石头,最终返回该石头的重量。解法一使用单一循环完成,而解法二则采用循环直到倒数第二个元素为0的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:
在这里插入图片描述
代码:

  • 解法一
class Solution {
    public int lastStoneWeight(int[] stones) {
        int weight=0;
        int len=stones.length;
        for(int i=0;i<len-1;i++){
            Arrays.sort(stones);	//升序排序
            weight =stones[len-1]-stones[len-2];	
            stones[len-1]=weight;	//相减的值赋给倒数第一个
            stones[len-2]=0;	
        }
        return stones[len-1];	//循环结束后 升序最大的值返回
    }
}
  • 解法二
//思路与解法一相似
class Solution {
    public int lastStoneWeight(int[] stones) {
        int count=stones.length;
        if(count==1){
            return  stones[0];
        }else{
        while(stones[count-2]!=0){
            //给石头重量进行升序
            Arrays.sort(stones);
            //处理最重的两个石头 
            stones[count-1] =stones[count-1] - stones[count-2] ;
            stones[count-2]=0;
            Arrays.sort(stones);
        }
        return  stones[count-1];
     }
  }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值