上周开始每日一题,leetcode的上的简单题基本上仔细思考就能做出来,但是一到中等难度就会卡壳,大部分情况都需要看参考答案,上周7道题中只有一道是简单题,好在大部分的题都是同类型的题,刚开始不会做,但是一道两道不会做,看答案,理解别人的解题思路,达到起码自己能默写下来的程度,坚持下去,后面两天突然发现自己竟然会做了。
不管会不会,先听懂看懂,然后能基本上默写下来,这是目前我对自己学习编程的基本要求,实在不会再看答案,7月8月做的很多前端小程序练习虽然不难,但是并没有完全达到自己默写的程度,所有学习效果要打折扣,这次坚持了一个周明显感到这样做的好处,因为自己的做的时候总会出现意想不到的问题,不是这里写错就是那里想不起来如何写,但是当把所有卡壳的地方一一攻破,对知识的掌握明显清晰很多。
现在来大致梳理一下上周的学习
77. 组合
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
解题如下:
/**
* @param {number} n
* @param {number} k
* @return {number[][]}
*/
var combine = function(n, k) {
var res = [];
var helper = function(start, path){
/* 把这个条件换成求和目标值就是79题(无限重复)、40题(每个数字在每个组合中只能使用一次)*/
if(path.length==k){
/* 这是关键的一步path.slice()复制了一个path,原因是数组作为一个引用,
指向同一个地址,那么一个地方改变了其他地方也会受到影响 */
res.push(path.slice());
return;
}
for(let i=start;i<=n;i++){
path.push(i);
helper(i+1, path); // 是i还是i+1,决定是否可重复选择
path.pop(); // 这一步很关键,搜索回溯
}
}
helper(1,[]);
return res;
};
上周开始学习VUE
1.webpack打包配置,包括四个核心概念
1)入口(entry) - 指定处理的文件
2)输出(output)
3)loader
4)插件(plugins)
module.exports = {
entry: './file.xx', //也可以指定多个文件 { index: '', hellow:''},
output:{
path: pathlib.resolve(''), // 绝对地址
file:'bundle.js' // 多个'[name].bundle.js'
},
module: {
rules: [
{ test: /\.txt$/, use: 'raw-loader' } // .txt 文件转换采用 raw-loader,即采用文本输入
]
},
plugins: [
new HtmlWebpackPlugin({template: './src/index.html'})
]
};
vue-cli 脚手架,很方便我们构建自己的应用程序
目录结构如下
|-- build // 项目构建(webpack)相关代码
| |-- build.js // 生产环境构建代码
| |-- check-version.js // 检查node、npm等版本
| |-- dev-client.js // 热重载相关
| |-- dev-server.js // 构建本地服务器
| |-- utils.js // 构建工具相关
| |-- webpack.base.conf.js // webpack基础配置
| |-- webpack.dev.conf.js // webpack开发环境配置
| |-- webpack.prod.conf.js // webpack生产环境配置
|-- config // 项目开发环境配置
| |-- dev.env.js // 开发环境变量
| |-- index.js // 项目一些配置变量
| |-- prod.env.js // 生产环境变量
| |-- test.env.js // 测试环境变量
|-- src // 源码目录
| |-- components // vue公共组件
| |-- store // vuex的状态管理
| |-- App.vue // 页面入口文件
| |-- main.js // 程序入口文件,加载各种公共组件
|-- static // 静态文件,比如一些图片,json数据等
| |-- data // 群聊分析得到的数据用于数据可视化
|-- .babelrc // ES6语法编译配置
|-- .editorconfig // 定义代码格式
|-- .gitignore // git上传需要忽略的文件格式
|-- README.md // 项目说明
|-- favicon.ico
|-- index.html // 入口页面
|-- package.json // 项目基本信息
网友评论