Administrator
发布于 2023-09-24 / 7 阅读 / 1 评论 / 0 点赞

9月24日

规划

  1. 算法 1h

  2. Linuxc++ 2h

  3. 网络 1h

  4. 英语 1h

  5. c++职位/面经 1h

  6. 项目文件 1h

实际

起床:9:00

10:00-12:00学习

15:30-17:30学习

21:00-22:10学习

共5.10个小时

知识点

算法学习

动态规划

动态规划,c++,思路分析

139. 单词拆分 - 力扣(LeetCode)

class Solution {
public:
    // 状态转移方程:
    // bool dp[i];  从i下标到尾部的字符串切片 是否满足条件
    // for(string &str:wordDict ){
    //     if(str==s.str(start,str.len) && dp[i+str.len]==1){
    //         dp[i]=1;
    //     }else[
    //         dp[i]=1;
    //     ]
    // }

    // 求 dp[0]?
    // 初始状态dp[s.len]=1,毕竟空串必定满足条件
    // 状态转移方程: dp[i]=(str==s.str(start,str.len) && dp[i+str.len]==1)


    vector<int> dp;// -1未计算 0  1
    bool dpfun(const string &s,int start,const vector<string>& wordDict){
        if(start==s.size()){
            return true;
        }
        if(dp[start]!=-1){// 已经计算过的,直接返回结果,避免重复计算
            return dp[start]?true:false;
        }
        for(auto &str:wordDict){
            if(start+str.size()>s.size())
                continue;
            string s_tmp=s.substr(start,str.size());// 判断从start开始的这一段是否与str相等
            if(s_tmp!=str)
                continue;
            if(dpfun(s,start+str.size(),wordDict)){// 满足
                dp[start]=1;
                return true;
            }
        }
        dp[start]=0;
        return false;
    }
    bool wordBreak(string s, vector<string>& wordDict) {
        dp=vector<int>(s.size(),-1);
        return dpfun(s,0,wordDict);
    }
};

Linux学习

shell 相关

shell 怎么找命令?

$PATH的系统变量包含的目录中找,$PATH不是$path

linux系统结构
常用的shell
Linux目录结构

/bin

放系统命令的2进制文件

/sbin

super用户常用命令的2进制文件

/dev

硬盘、显卡、显示器、鼠标、其他

  • 字符设备文件(鼠标、键盘)

  • 块设备文件

例子:sudo cat /dev/input/mouse0 查看鼠标的文件

/lib

linux 运行的时候需要加载的一些动态库

/mnt: 手动的挂载目录, 如 U 盘等

/media: 外设的自动挂载目录, 如光驱等。

/root: linux 的超级用户 root 的家目录

/usr: unix system resource--类似于 WINDOWS 的 programe files 目录

include 目录里存放头文件, 如: stdio.h、stdlib.h、string.h、pthread.h

games 目录下的小游戏-如: sl 小火车游戏

/etc: 存放配置文件

/etc/passwd ◆ man 5 passwd 可以查看 passwd 文件的格式信息

/etc/group ◆ man 5 group 可以查看 group 文件的格式信息

/etc/profile ◆ 系统的配置文件, 修改该文件会影响这个系统下面的所有的用户

/opt: 安装第三方应用程序

比如安装 oracle 数据库可以在这个目录下

/home: linux 操作系统所有用户的家目录

用户家目录:(宿主目录或者主目录) ◆ /home/itcast

/tmp: 存放临时文件

◼ 新建在这个目录下的文件会在系统重启后自动清除

username@ComputerName
主机名:cat /etc/hosts
ls命令

-l:列出文件的详细信息, 7 部分内容

◆ 文件类型 (第 1 个字符)

➢ - : 普通文件

➢ d : 目录

➢ l : 符号链接,相当于 windows 中的快捷方式

➢ s : 套接字

➢ p : 管道

➢ b : 块设备

➢ c : 字符设备

◆ 权限 (后面的字符)

文件所有人的权限

文件所有人的组的权限

其他人的权限

◆ 后面的数字

目录:该目录有几个目录(包含的 .和 ..)

文件:该文件的硬链接数

◆ ls -la : 列出当前目录下所有文件的相信信息, 包括隐藏文件

◆ ls -ltr: 列出当前目录下的文件, 按照时间逆向排序

cd -:返回切换前的目录

tail -f a.log

实时监控 a.log的变化

>和 >> 的功能

echo "sb" > b.log 覆盖

echo "sb" >> b.log 追加

硬链接和软链接

stat命令

高级查找

◼ 例:查找指定目录下所有目录,并列出目录中文件详细信息

◆ find ./ -type d -exec shell 命令 {} \;

find ./ -type d -exec ls -l {} \;

◆ find ./ -type d -ok shell 命令 {} \;

find ./ -type d -ok ls -l {} \;

◼ 注意: {}中间不能有空格

◼ ok 比较安全, 特别是在执行 rm 删除文件的时候.

◆ find ./ -type d | xargs shell 命令

find ./ -type d | xargs ls -l


评论