0
点赞
收藏
分享

微信扫一扫

K8S:开源容器编排平台,助力高效稳定的容器化应用管理

题一.K次取反后最大化的数组和(LeetCode)

题目分析

由于我们希望数组的和尽可能大,因此除非万不得已,我们应当总是修改负数,并且优先修改值最小的负数。因为将负数 −x 修改成 x 会使得数组的和增加 2x,所以这样的贪心操作是最优的。

题解 

class Solution {
public:
	int largestSumAfterKNegations(vector<int>& nums, int k) {
		int m = 0;
		int ret = 0;
		for (auto x : nums)
		{
			if (x < 0) m++;
		}
		sort(nums.begin(), nums.end());
		if (k > m)
		{
			for (int i = 0; i < m; i++)
			{
				nums[i] *= -1;
			}
			sort(nums.begin(), nums.end());
			for (int i = 0; i < k - m; i++)
			{
				nums[0] *= -1;
			}
		}
		else
		{
			for (int i = 0; i < k; i++)
			{
				nums[i] *= -1;
			}
		}
		for (auto x : nums)
		{
			ret += x;
		}
		return ret;
	}
};

题二.按身高排序(LeetCode)

题解一.哈希表

class Solution1 {
public:
	vector<string> sortPeople(vector<string>& names, vector<int>& heights) {
		map<int, string> hash;
		vector<string> ans;
		for (int i = 0; i < names.size(); ++i) hash[heights[i]] = names[i];
		for (auto &i : hash) ans.push_back(i.second);
		reverse(ans.begin(), ans.end());
		return ans;
	}
};

*题解二.对下标排序

class Solution2 {
public:
	vector<string> sortPeople(vector<string>& names, vector<int>& heights) {
		int n = names.size();
		vector<int> index(n);
		for (int i = 0; i < n; i++) index[i] = i;
		sort(index.begin(), index.end(), [&](int i, int j)
		{
			return heights[i] > heights[j];
		});
		vector<string> ret;
		for (int i : index)
		{
			ret.push_back(names[i]);
		}
		return ret;
	}
};

**题三.优势洗牌(LeetCode)

题目分析

题解 

class Solution {
public:
    vector<int> advantageCount(vector<int>& nums1, vector<int>& nums2) {
        int n=nums1.size();
        sort(nums1.begin(),nums1.end());
        vector<int> index2(n);
        for(int i=0;i<n;i++) index2[i]=i;
        sort(index2.begin(),index2.end(),[&](int i,int j)
        {
            return nums2[i]<nums2[j];
        });

        vector<int> ret(n);
        int left=0,right=n-1;
        for(auto x : nums1)
        {
            if(x>nums2[index2[left]]) ret[index2[left++]]=x;
            else ret[index2[right--]]=x;
        }
        return ret;
    }
};
举报

相关推荐

0 条评论