1月25日工作总结

近日疫情看起来十分不容乐观,希望武汉的同胞能坚强挺过这一关,不要有那么多人在2020离开我们。我十分相信,终有一天,这段混乱的日子将会过去!把握机遇,迎接挑战,愿君灼灼千里目,终有一日天光破!武汉加油!!!

A.首先对于战略进行总结——活得清楚才能活得好

1.如何快速进入状态

远离手机,放歌

2.做题应该怎么做

3.选题怎么选

4.一天怎么衡量自己学的好不好

定量,定规矩,定时间

5.究竟需要什么

6.怎么读懂代码,不被迷惑

分类击破,变量是有类型的,存储的,运算的。理解存储变量是理解题意的第一步

B.Leetcode132 

132. Palindrome Partitioning II
Hard

Given a string s, partition s such that every substring of the partition is a palindrome.

Return the minimum cuts needed for a palindrome partitioning of s.

Example:

Input: "aab"
Output: 1
Explanation: The palindrome partitioning ["aa","b"] could be produced using 1 cut.
//理解存储变量的含义是理解题意的第一步
class Solution {
public:
    int minCut(string s) {
        //特殊判断十分重要
        if (s.empty()) return 0;
        int n = s.size();
        //二维数组p 存储在j到i的区间是否是一个回文串,bool型,true/false
        vector<vector<bool>> p(n, vector<bool>(n));
        //int型dp是到当前状态要切的刀数
        vector<int> dp(n);
        for (int i = 0; i < n; ++i) {
            //默认没有回文串,每个字符自成一个,这是最多的情况
            dp[i] = i;
            //开始遍历,j。。i
            for (int j = 0; j <= i; ++j) {
                //如果元素相同且这两个元素紧邻,或者其中间的元素本来就是回文都可以判断当前范围是回文
                if (s[i] == s[j] && (i - j < 2 || p[j + 1][i - 1])) {
                    p[j][i] = true;
                    //已经判断是回文就可以切割,如果当前是从开头计算的就是0刀,否则看取右节点的值和左节点+1的值中的最小值作为当前节点
                    dp[i] = (j == 0) ? 0 : min(dp[i], dp[j - 1] + 1);
                }
            }
        }
        //n个点但是下标是n-1所以最后一个下标的就是需要切的刀数
        return dp[n - 1];
    }
};


//理解存储变量的含义是理解题意的第一步class Solution {public:    int minCut(string s) {        //特殊判断十分重要        if (s.empty()) return 0;        int n = s.size();        //二维数组p 存储在j到i的区间是否是一个回文串,bool型,true/false        vector<vector<bool>> p(n, vector<bool>(n));        //int型dp是到当前状态要切的刀数        vector<int> dp(n);        for (int i = 0; i < n; ++i) {            //默认没有回文串,每个字符自成一个,这是最多的情况            dp[i] = i;            //开始遍历,j。。i            for (int j = 0; j <= i; ++j) {                //如果元素相同且这两个元素紧邻,或者其中间的元素本来就是回文都可以判断当前范围是回文                if (s[i] == s[j] && (i - j < 2 || p[j + 1][i - 1])) {                    p[j][i] = true;                    //已经判断是回文就可以切割,如果当前是从开头计算的就是0刀,否则看取右节点的值和左节点+1的值中的最小值作为当前节点                    dp[i] = (j == 0) ? 0 : min(dp[i], dp[j - 1] + 1);                }            }        }        //n个点但是下标是n-1所以最后一个下标的就是需要切的刀数        return dp[n - 1];    }};
1.如何快速进入状态
2.做题应该怎么做
3.选题怎么选
4.一天怎么衡量自己学的好不好
5.甲方爸爸需要什么
6.怎么读懂代码,不被迷惑
分类击破,变量是有类型的,存储的,运算的。理解存储变量是理解题意的第一步

猜你喜欢

转载自www.cnblogs.com/Marigolci/p/12233524.html