第五十八天-树状问题,mysql安装

今天起床之后又是正常起床的一天,突然意识到,这段时间状态下滑一是因为疲惫,也是因为目标偏离了,其实最终的目标还是希望能够做真正意义上编程的工作,这一点是即使调换部门,也无法实现的,所以其实现在最重要的是修改简历,在即将到来的春招里试一试自己的市场竞争力。

这么一想,马上就有了紧迫感和动力,在网上浏览科技公司的招聘要求,发现很多都对SpringCloud, SpingBoot比较喜欢,这跟我之前买的项目类课程是一致的,只是目前进展缓慢,还在配置阶段,最重要的项目设计还没有开始,如果以至少在春招的时候试试水为目标的话,确实应该加快项目进度了,反而社招对刷题没有校招那么看重,时间有限的情况下,也可以试着调整时间分配。

今日进度:
1.确立了准备春招去市场试试水的目标,项目准备要加快了,简历也要改起来,基础知识点也要赶紧学习了
2.坚持听网课,坚持刷题
3.坚持录小王子
4.坚持听英语新闻
5.坚持锻炼
6.坚持早睡
7.坚持记录

学习笔记:
1.tomcat是一个中间件,在B/S架构中,浏览器发出的http请求经过tpmcat中间件,转发到最终的目的服务器上,响应消息再通过tomcat返回给浏览器。tomcat所做的事情主要有:开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。

2.B/S架构的全称为Browser/Server,即浏览器/服务器结构。
Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。

3.B/S架构的分层:第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
第三层数据层:主要是接受客户端请求后独立进行各种运算。

4.Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。

5.MyBatis的三剑客是MyBatis-generator、MyBatis-plugin、MyBaits-pageHelper。
–generator:用于快速生成xml文件、注释、实体类等等。
–plugin:能快速定位接口对应的sql。
–pageHelper:是一款分页插件

6.idea其实就是我们经常说道的IntelliJ IDEA,是java编程语言开发的集成环境。

7.MAC系统更新后无法打开virtual box,打开终端,输入sudo spctl --master-disable,确定,提示你输入密码,密码就是你电脑的密码。关闭了MAC的信任证书筛选。卸载virtual box,重新安装,再重启电脑,就可以正常打开了。
第五十八天-树状问题,mysql安装
8.SQL:create database ‘mmall’ default character set utf8 collate utf8_general_ci;
报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘mmall’ default character set utf8 collate utf8_general_ci’ at line 1
数据库名称使用的是单引号而不是反引号,所以会就报了这个错误出来。在英文键盘输入环境下,按图示按钮输入反引号 `。
第五十八天-树状问题,mysql安装

这个语句就没有问题了
create database mmall default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

9.216. 组合总和 III
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。
说明:
所有数字都是正整数。
解集不能包含重复的组合。
示例 1:

输入: k = 3, n = 7
输出: [[1,2,4]]

解题思路:从1到9使用递归遍历,每次都用n减去当前值,使用临时表list存储组合,如果list的大小等于k,且n=0就找到了一组组合,加入结果集。对于list大小大于k和n小于0的情况,进行剪枝。

class Solution {
    List<List<Integer>> res = new ArrayList<List<Integer>>();
    public List<List<Integer>> combinationSum3(int k, int n) {
        List<Integer> list = new ArrayList<Integer>();
        generateC(k, n, 1, list);
        return res;
    }
    public void generateC(int k, int n, int cur, List<Integer> list){
        if(list.size() == k && n == 0){
            res.add(new ArrayList<Integer>(list));
            return;
        }
        //剪枝
        if(list.size() > k || n < 0){
            return;
        }
        for(int i=cur; i<=9; i++){
            list.add(i);
            generateC(k, n-i, i+1, list);
            list.remove(list.size()-1);
        }
    }
}

10.78. 子集
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能包含重复的子集。你可以按任意顺序 返回解集。
示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

解题思路:使用递归遍历整个数组,有两种情况,一种是不跳过当前元素,一种是跳过当前元素,不跳过当前元素时,将它添加到结果集中,最后遍历结束,输出数组的全子集。

class Solution {
    List<List<Integer>> res = new ArrayList<List<Integer>>();
    public List<List<Integer>> subsets(int[] nums) {
        List<Integer> list = new ArrayList<Integer>();
        dfs(nums, 0, list);
        return res;
    }
    public void dfs(int[] nums, int cur, List<Integer> list){
        if(cur == nums.length){
            res.add(new ArrayList<Integer>(list));
            return;
        }
        list.add(nums[cur]);
        //不跳过第i个元素
        dfs(nums, cur+1, list);
        list.remove(list.size()-1);
        //跳过第i个元素
        dfs(nums, cur+1, list);
    }
}

今天又晚了,没有看动漫,还是磨磨蹭蹭地到了这个时间,看来晚上的时间真的是很难控制啊,不管怎么说,找回了之前的状态还是好的,果然没有压力就没有动力啊,明天继续加油!

上一篇:MySQL索引背后的数据结构及算法原理


下一篇:Mysql 无障碍轻松学习(三)DataGrip 连接Mysql 与创建数据库