• 欢迎光临~

LeetCode第 94 场双周赛

开发技术 开发技术 2022-12-31 次浏览

1.最多可以摧毁的敌人城堡数目

题目

最多可以摧毁的敌人城堡数目

Solution

可以第一重循环找到(1),然后从该位置分别向左和向又寻找(-1),寻找过程中遇到(1)则停止,不更新ans,遇到(-1)则更新ans

class Solution {
public:
    int captureForts(vector<int>& forts) {
        int ans = -1;
        int n = forts.size();
        for(int i = 0;i < forts.size();i++){
            if(forts[i] == 1){
                for(int j = 1;j <= forts.size() - 1 && i + j <= n-1;j++){
                    if(forts[i+j] == 1) break;
                    if(forts[i+j] == -1){
                        ans = max(ans,j);
                        break;
                    }
                }
                for(int j = 1;j <= forts.size()-1 && i - j >= 0 && i != 0; j++){
                    if(forts[i-j] == 1) break;
                    if(forts[i-j] == -1){
                        ans = max(ans,j);
                        break;
                    }
                }
            }
        }
        return ans-1 > 0? ans-1:0;
    }
};

2.奖励最顶尖的 K 名学生

题目

奖励最顶尖的 K 名学生

Solution

程序员灯塔
转载请注明原文链接:LeetCode第 94 场双周赛
喜欢 (0)