2024.03.05_学习日记

天气:雨
学习地点:学校
学习时长:8h

学习内容

  1. 机器学习
    看了snownlp等方法做情感分析。
  2. 媒体情绪传染与分析师乐观偏…学习文本分析方法的经验证据
    这篇论文可以再看看,学学爬虫怎么爬到百度新闻指定日期指定主题的内容。
  3. lc139
    alt text
    这个题想到用动态规划,dp表示前i个字符串能不能用子字符表示出来,先遍历字符串,再遍历字符表,如果当前i大于等于word长度,并且i-word长度的值为true,并且这两段字符相等,dp值就true,break出来,到下一个字符,最后返回dp【-1】,这个题要注意切片索引。
  4. lc15
    alt text
    这个题要想到首先把nums排序,然后想到有三个指针,但是不能三个指针一起遍历,要先固定一个指针k,从左往右走,遇到相同值跳过,然后定义一个k右边的双指针,一个左往右,一个右往左,遇到相同值跳过(不跳过更快??),如果三数相加大于0,右指针过大,左移,三数相加小于0,左指针太小,右移,如果等于0,res就添加三个值,i右移,j左移,如果有重复值跳过,当k的值大于0的时候,就break返回res。k遍历的值为n-2,因为右边始终有两个大的值。
  5. 基本计算器
    alt text
    这个题跟有括号的不一样,这个题是用到栈,同样也用preop记录前面的符号,当遇到运算符或者终点位置,就证明数字num已经结束了,需要计算,计算完的结果放进栈,如果+,直接放进去,-,放进相反数,*弹出元素再相乘以后放进去,/有点复杂,如果栈顶是正数,直接//地板除,如果是负数,就/,然后转为int值,然后放进去,最后栈内元素相加就行,每次遍历要更新preop和num。之前的基本计算器题目只有加减乘除,但是有括号,要把符号也push进栈,左边是ans和符号,符号记录的是num的符号以及遇到括号时num右边的符号,然后更新res和符号,直到遇到右括号,就把整个括号内的都算完了,然后栈顶弹出两个元素进行运算,然后继续遍历。
  6. 岛屿问题
    alt text
    alt text
    并查集解法,先定义并查集union和find方法,然后遍历整个list,如果当前位置是1,那就看左边和上面是不是也为1,如果是,就union。最后用一个哈希表来遍历整个生成的findfather数组,看有几个father即可。
    alt text
    dfs解法,设置dfs方法,使用dfs首先让当前字符变为0,然后遍历上下左右四个地方,看是不是也是1,如果是1并且不越界,就继续dfs这个位置。整个算法是遍历整个数组,如果是1,那就dfs,dfs后ans+1,因为每dfs一次,值都会变成0,看一共能遇到多少次1,就是多少个岛屿。
  7. 全排列
    alt text
    回溯算法,用check数组来记录当前位置有没有取过,递归算法就是如果check当前位置为1,那就continue,如果为0,那就用当前位置,check变成1,然后继续递归,递归结束要返回check为0才行,比如1选了,2没选,选了以后就123,但是2已经标记了1,现在想递归132,那2就不能标记为1,所以要复原。