class Solution {
public:
int lastStoneWeight(vector<int>& stones)
{
if(stones.size()<=0)
return 0;
if(stones.size() == 1)
return stones[0];
int arr[1001] = {0};
for(int i=0;i < stones.size(); i++)
arr[stones[i]]++;
int j = 1000;
int j_next;
while(j >= 0)
{
arr[j] %= 2;
if(arr[j] == 0)
{
j--;
continue;
}
else
{
j_next = j-1;
while(j_next >=0 && arr[j_next] == 0)
j_next--;
if(j_next < 0)
break;
else
{
arr[j-j_next]++;
arr[j_next]--;
j--;
}
}
}
if(j < 0)
return 0;
else
return j;
}
};
日常刷题2
最新推荐文章于 2024-07-12 18:12:33 发布