题目:
代码:
- 解法一
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];
}
}
}