ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

七月集訓 貪心

2022-07-04 23:35:55  阅读:116  来源: 互联网

标签:七月 num nums int colors 集訓 ans size 貪心


leetcode 2078

仔細認真理解題目的輸入,就發現這題實際上是在找最大值,秉承用最簡單的解法,就是枚舉,兩兩比對,

取下標的絕對值,每次比對之後比較是否比最大值大,如果是就更新最大值。

class Solution {
public:
    int maxDistance(vector<int>& colors) {
        int ans = 0;
        for (int i = 0; i < colors.size(); ++i)
        {
            for (int j = i + 1; j < colors.size(); ++j)
            {
                if (colors[i] == colors[j]) continue;
                else {
                    ans = abs(i - j) > ans ? abs(i - j) : ans;
                }
            }
        }
        return ans;
    }
};

總結:通過本題我發現之前的我總是有畏難心理,覺得題目長就恐懼了,然後把注意點放在不重要的信息上,

如果是之前的我,就會把注意力放在房子的顏色和數字之間的關係上,好吧,我承認,在寫這題時,我也有

這種想法XD。我的寫法還有優化的空間,數值比較可以用庫函數max(),從而減少分支。

leetcode 561

吃了個飯後忘記了一切從簡的原則,我苦想了半天,還是沒能逃脫怪圈,想著如何把數組中的數字分組?!

辦法是遍歷數組然後兩兩相加,放到一個數組中,最後把數組中的和與ans 比較取最大。這題我5個月前

參加九日集訓還寫過,現在寫,一點印象都沒有。

class Solution {
public:
    int arrayPairSum(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int ans = 0;
        for (int i = 0; i < nums.size(); i += 2)
        {
            ans += nums[i];
        }
        return ans;
    }
};

leetcode 1323

這題我想不到;

class Solution {
public:
    int maximum69Number (int num) {
        vector<int> s;
        while(num)
        {
            s.push_back(num % 10);
            num /= 10;
        }
        for (int i = s.size()-1; i >= 0; --i)
        {
            if (s[i] == 6)
            {
                s[i] = 9;
                break;
            }
        }
        int ret = 0;
        for (int i = s.size()-1; i >= 0; --i)
        {
            ret = ret * 10 + s[i];
        }
        return ret;
    }
};

最後一題,我連題目都看不懂

leetcode 942

标签:七月,num,nums,int,colors,集訓,ans,size,貪心
来源: https://www.cnblogs.com/sixiaoxiaoya/p/16444837.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有