招商银行编程题-第六天

三道题

第一题

题目链接:https://leetcode-cn.com/problems/add-strings/

个人题解:大整数相加板子题

点击查看代码
class Solution {
public:
    vector<int> add(vector<int>& A, vector<int>& B) {
        vector<int> C;
        for (int i = 0, t = 0; i < A.size() || i < B.size() || t; i ++ ) {
            if (i < A.size()) t += A[i];
            if (i < B.size()) t += B[i];
            C.push_back(t % 10);
            t /= 10;
        }
        return C;
    }

    string addStrings(string a, string b) {
        vector<int> A, B;
        for (int i = a.size() - 1; i >= 0; i -- ) A.push_back(a[i] - '0');
        for (int i = b.size() - 1; i >= 0; i -- ) B.push_back(b[i] - '0');
        auto C = add(A, B);
        string c;
        for (int i = C.size() - 1; i >= 0; i -- ) c += to_string(C[i]);
        return c;
    }
};

第二题

题目链接:https://leetcode-cn.com/problems/longest-palindromic-substring/

个人题解:二分+哈希;
马拉车算法可以优化到线性的时间复杂度,但是特别偏,只能处理最长回文子串

点击查看代码
class Solution {
public:
    string longestPalindrome(string s) {
        string res;
        for (int i = 0; i < s.size(); i ++ ) 
        {
            int l = i - 1, r = i + 1;// bab的情况
            while (l >= 0 && r < s.size() && s[l] == s[r]) l --, r ++ ;
            if (res.size() < r - l - 1) res = s.substr(l + 1, r - l - 1);

            l = i, r = i + 1;// baab的情况
            while (l >= 0 && r < s.size() && s[l] == s[r]) l --, r ++ ;
            if (res.size() < r - l - 1) res = s.substr(l + 1, r - l - 1);
        }

        return res;
    }
};

第三题

题目链接:

个人题解:经典动态规划

点击查看代码
class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int a=grid.size(),b=grid[0].size();
        if(a==0||b==0) return 0;

        auto dp=vector<vector<int>> (a,vector<int>(b));
        dp[0][0]=grid[0][0];

        for(int i=1;i<a;i++) dp[i][0]=dp[i-1][0]+grid[i][0];
        for(int j=1;j<b;j++) dp[0][j]=dp[0][j-1]+grid[0][j];
        for(int i=1;i<a;i++)
        {
            for(int j=1;j<b;j++)
            {
                dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j];
            }
        }
        
        return dp[a-1][b-1];
    }
};
posted @ 2022-04-20 17:23  黑VS白-清墨  阅读(57)  评论(0)    收藏  举报