ARTS-week-1

用户头像
saddamwilson
关注
发布于: 2020 年 05 月 30 日



1. Algorithm



https://leetcode.com/problems/two-sum/

先从最简单的两个数之和开始吧。准备先拿javascript开始刷起,然后拿C++在刷一遍

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].



解题思路:

1、首先想到的就是暴力方式两层for循环

var twoSum = function(nums, target) {

for (let i=0; i<nums.length; i++) {

for (let j=i+1; j<nums.length; j++){

if (nums[i] + nums[j] === target) {

return [i, j];

}

}

}

};

果不其然,提交之后200多毫秒



2、先给原始数据排序,然后通过判断数据两端相加的和,如果大于target则向左移动,如果小于target则向右移动

var twoSum = function(nums, target) {

let temp = JSON.parse(JSON.stringify(nums))

nums.sort(sortNumber)

let i=0;

let j=nums.length-1;

let real=[];

while(i<j) {

if (nums[i] + nums[j] > target) {

j--;

} else if (nums[i] + nums[j] < target){

i++;

} else {

real = [nums[i],nums[j]]

break;

}

}

return [temp.indexOf(real[0]), temp.lastIndexOf(real[1])]

};

function sortNumber(a,b) {

return a-b

}

时间复杂度变成了O(n),但是排序还是浪费了一定的时间



3、求出target和数组中元素的差值放在对象里面,类似于hash表解法

var twoSum = function(nums, target) {

let map = {};

let i=0;

let dist=0

while(i<nums.length) {

dist = target - nums[i];

if(map[dist] !== undefined) {

return [map[dist], i]

}

map[nums[i]] = i;

i++;

}

};

2. Review

http://norvig.com/21-days.html

我觉得文章中写的最好的一句话是Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.把编程这门手艺学好还是相当难的,需要长时间有针对性的练习,平时工作中可能只是为了完成工作而去搬砖,但是我觉得需要我们自己去抽出一些时间,提升自己的手艺,不管以后是否从事编程相关工作了



3. Tips



之前开发的项目中用到的go mod命令,整理一下

download 下载依赖的module到本地cache
edit 编辑go.mod文件
graph 打印模块依赖图
init 在当前文件夹下初始化一个新的module, 创建go.mod文件
tidy 增加丢失的module,去掉未用的module
vendor 将依赖复制到vendor下,注意依赖需要在import 中声明后才能进行导入
verify 校验依赖
why 解释为什么需要依赖
go get ./... 命令可以查找出当前项目的依赖



4. Share

分享给大家一本书吧。《刻意练习》

我们熟知的一万小时理论并不一定是正确的,书中的观点,学习某一项技能到很深的程度,并不一定需要一万小时,需要的只是找到正确的方式对你想学习的技能进行深度的训练。码农之所以被称为码农,就是因为我们平时干的净是一些基于原有Base的CRUD的活,长时间下去只能在业务上比较熟练,技能上其实没有任何的成长。

工作这几年虽然也学到了一些东西,但是跟一些大神比起来,相差的太多了。之前一直以为是自己的智商问题,直到我听到了一句话,“以普通人努力程度之低,远远达不到拼天赋的程度”,平时工作中只会埋头写CRUD,好不容易有点空余时间,也被手机给夺走了。

期望好好学完昊哥的课程,努力认真的打卡,争取让自己的编程水平上几个台阶



发布于: 2020 年 05 月 30 日 阅读数: 41
用户头像

saddamwilson

关注

还未添加个人签名 2020.03.24 加入

还未添加个人简介

评论

发布
暂无评论
ARTS-week-1