leetcode 66 plusone 554. 砖墙

plusone

leetcode 66 plusone 554. 砖墙_第1张图片
c++

 vector<int> plusOne(vector<int>& digits) {
      int n = digits.size();
        for (int i = n - 1; i >= 0; --i) {
            if (digits[i] == 9) digits[i] = 0;
            else {
                digits[i] += 1;
                return digits;
            }
        }
        if (digits.front() == 0) digits.insert(digits.begin(), 1);
        return digits;
    }

解析
从最后一位开始判断,如果最后一位是9,则变为0.并把前面的数加1.这里通过return实现
最后判断全是9的情况,要加一进位。

砌墙

leetcode 66 plusone 554. 砖墙_第2张图片

c++

 int leastBricks(vector<vector<int>>& wall) {
        int m=wall.size();
        unordered_map<int,int> tmp;
        for(int i=0;i<m;i++)
        {
            int sum=0;
            int n=wall[i].size();
            for(int j=0;j<n-1;j++)
            {
                sum+=wall[i][j];
                tmp[sum]++;
            }
        }
        int cc=0;
        unordered_map<int,int>::iterator it;
        for(it=tmp.begin();it!=tmp.end();it++)
        {
            cc=max(cc,it->second);
        }  
        return m-cc;  
    }

你可能感兴趣的:(LeetCode)