- 博客(90)
- 资源 (1)
- 收藏
- 关注
原创 LeetCode 经典回溯问题//子集+组合+全排列
子集、组合 : 子集、子集 II、组合、组合总和、组合总和 II全排列 : 全排列、全排列 II、字符串的全排列、字母大小写全排列搜索 : 解数独、单词搜索、N皇后、分割回文串、二进制手表方法:构造dfs+递归+pop()...
2020-12-06 17:50:42
274
原创 Array(size).fill()
ES6:数组API:fill今天做题第一次用到const G = new Array(10).fill(0) //[0 0 0 0 0 0 0 0 0 0]console.log(G[0]); //0可以用0来占位如果只给size,不给fill填充,则每一位都是undefined
2020-12-05 21:47:20
268
原创 LeetCode 打家劫舍三道(动态规划入门)//12.2
1.汉明距离先做个简单的461 汉明距离 606 78.2% 简单 法一:补0+遍历var hammingDistance = function(x, y) { let a = x.toString(2); let b = y.toString(2); // let lenA = a.length; // let lenB = b.length; while(a.length < b.len..
2020-12-02 18:04:44
186
原创 LeetCode FrontEnd面试经典//三题//11.23
1.大数相加2.数组扁平化3.最长不重复子串var lengthOfLongestSubstring = function(s) { // 双指针+滑动窗口 if (!s) return 0; if (s.length < 2) return 1; let head = 0; // let tail = 0; let res = 1; for (let tail = 1; tail < s.length; tail++) {
2020-12-02 17:00:38
143
原创 LeetCode N叉树遍历//11.29Cold
1.589 N叉树的前序遍历 326 74.0% 简单 法一:队列,迭代注意:queue.length,不能以!queue判空数组var preorder = function(root) { if(!root) return [] let queue = [root]; let res = []; while (queue.length) { let node = queue.shift(); ..
2020-11-29 21:50:25
179
原创 LeetCode 判断对称二叉树//11.29Cold
曾想过用中序+回文,但这里需要考虑null,(也许可行)也想过先求镜像,但最后验证的时候要用JSON.stringify(root)之类的,也还凑合这里提供一种方法:比较好的迭代思路var isSymmetric = function(root) { return root? mirror(root.left,root.right):true; function mirror(l,r) { if (!l && !r) return true;
2020-11-29 20:52:21
127
原创 LeetCode Hot100 环形链表
1.141 环形链表 1569 50.4% 简单 三个方法:①快慢指针,总会相遇,注意while的条件要有head.next也存在,防止下图的情况发生,导致head.next没有next,会报错:②ES6数据结构Map③ES6数据结构Set,改天单独说一下这两个数据结构var hasCycle = function(head) { // 法一: // let fast = head; // let slow =..
2020-11-28 23:34:02
186
原创 LeetCode 经典面试题 //千分位隔数
1556 千位分隔数 82 60.0% 简单 千分位加逗号,此题加点号,一个道理正常做法:遍历注意1.数字没有length和索引,所以先转化为字符串。注意2.不用let空数组最后再join,直接let空字符串然后字符串拼接isok注意3.索引0的时候也会添加. ,也就是说1234 => .1.234,所以注意判断条件注意4.不用考虑有多少个点,直接遍历即可,我最开始就想多了,导致一致内存溢出var thousandSepa...
2020-11-28 18:42:11
577
原创 LeetCode 链表相关 //重新理解
1.剑指 Offer 24 反转链表 927 74.3% 简单 之前用python做过了,但理解的不透彻,重新用JS再做一下。个人理解:首先,node.next 相当于链表结构中的左←右→箭头指向(正常就是→),其次,如果定义了一个指针如 let cur= head(指向一个链表,相当于头结点),那么再声明一个指针let pre= cur,并不是说pre指向cur,而是指向cur指向的值,也就是说两者都指向head,而不是指针的指针下...
2020-11-27 21:01:17
608
原创 可视化工具ECharts入门
想把main.vue加载到根组件app.vue上,则要加路由,用到哪个组件,就加哪个组件@代表根路径使用三元表达式 来显示隐藏更多城市引入fontawesomethis.的意思是当前vue实例then是没有问题时候执行,catch是有问题的时候执行在main.js中import axios from 'axios'修改原型链(相当于在他身上多加一种属性、方法)。这样可以全局使用axios,可在每个组件的methods中调用axios命令来完成数据请求Vue.prototype.
2020-11-26 22:05:30
295
原创 LeetCode 剑指offer经典链表题
面试题 02.07 链表相交 207 68.5% 简单 11.26面试var getIntersectionNode = function(headA, headB) { let l1 = headA; let l2 = headB; while(l1 != l2) { l1 = l1? l1.next : headB l2 = l2? l2.next : headA // if(!..
2020-11-26 22:03:33
159
原创 复习 !!//JS中的作用域
1.ES6之前:全局作用域和局部(函数)作用域。局部作用域可以访问全局作用域,注意是相对的全局,即上一/多级ES6:引入let和const,也就是块级作用域的概念。大括号表示块级作用域(包括函数,for,if之类)例外的是,不包括对象:下图的name并不是块级作用域下图这种会报错,因为形成了块级作用域:2.关于函数形参下面这个age是局部作用域3.try catchtry中出错,则运行catch第四行可以打印,第七行报错,他并不是ES6才有的,这里
2020-11-26 21:01:27
198
原创 在gitee中显示图片//展示项目(修改readme.md)
1.在线上的项目中创建文件夹,如img-folder,运行git,pull到本地2.将本地图片放到img-folder文件夹中,然后git add . 、commit -m ‘…’ 、push操作上传到线上3.在码云中点击图片的原始数据,复制url,以如下形式粘贴到本地项目的readme文件中(在最后加即可) { let arr = []; for(let n of nums){ if(n % 2 == 1) { arr.unshift(n); }else{ arr.push(n);...
2020-11-20 16:53:04
116
原创 CSS//移动端常见布局——流式布局+flex布局
1.流式布局即百分比布局(一般给宽度写百分比),效果:即随着不同浏览器或屏幕,可以自适应宽度,给定50%,再给每个div float:left即实现下面效果清除上面的边框:除此之外,还可以设置最大最小宽度:max-width & min-width案例:京东移动端页面:100% / 5 = 20%2.flex布局对比传统布局:①传统布局:兼容性好,但布局繁琐、不能在移动端很好的布局②flex弹性布局:操作方便、布局极为简单、移动端应用很广泛,.
2020-11-20 13:20:39
1438
原创 LeetCode 剑指offer//BinaryTree//11.19
1.剑指 Offer 68 - I 二叉搜索树的最近公共祖先 313 68.9% 简单 这道题与第二题不同,是二叉搜索树,root的值总大于left小于right,用迭代做一下:class Solution(object): def lowestCommonAncestor(self, root, p, q): while root: if root.val > p.val and root.va..
2020-11-19 15:43:22
135
原创 LeetCode 今日四题//位运算//11.18Hot..
1.剑指 Offer 56 - II 数组中数字出现的次数 II 336 79.2% 中等 法一:sort+比较相邻元素var singleNumber = function(nums) { nums.sort(); if(nums[0] !== nums[1]) return nums[0]; if(nums[nums.length-1] !== nums[nums.length-2]) return nums[nums.l..
2020-11-18 15:50:09
215
原创 10#去哪儿网app#前后端联调/真机测试/打包上线
1.前后端联调目前用的Ajax数据都不是从后端返回的真实数据,而是从接口mock模拟的假数据。前后端联调是指,当后端接口写好之后,传给前端来用。这时之前的mock数据就没用了,要切换成后端真实提供的接口数据。原作者自己做了个本地php后端接口,修改config下的index.js文件:proxyTable: { '/api': { target: ' http://localhost:8080', pathRewrite: {
2020-11-17 22:42:09
292
原创 9-6#去哪儿网app#Ajax获取detail内容
将已有的json文件放入mock中,在Detail.vue中发送ajax请求。此外,点击不同的景点,要显示不同的内容,且url变化,即要获得动态路由的参数由于之前已经在route里定义过id,直接用这个id。生命钩子mounted和methods与之前home(或者city)中调用ajax写法基本一致。接着就是数据的相互传递。最后有个问题,之前讲过,keep-alive做了缓存,点击别的景点的时候,没有重新发送Ajax请求,还是之前的数据。所以必须用activated钩子。这次用另一个方
2020-11-17 18:53:16
219
原创 LeetCode 二叉搜索树第k大节点//11.17补充
今早最开始看的是这道题的..然后滚回去复习了一下二叉树的几种遍历。二叉搜索树的概念相信都知道了,他的中序遍历是一个递增序列,也可通过此方法来判断是否是二叉搜索树。基础版:递归/迭代中序遍历因为递归代码简单,如果想全部遍历完再索引,直接递归或者迭代都无所谓了,这里用一下递归看看OJ用时var kthLargest = function(root, k) { let res = []; var dfs = function (root) { if(!roo.
2020-11-17 15:45:02
152
原创 LeetCode 二叉树前中后序//11.17Cloudy
除了前中后序,还有层次遍历,在之前的文章里写过,用的BFS。而对于前中后序遍历,常见的有两种方法:递归和迭代。1.前序遍历①递归:var preorderTraversal = function(root) { let res = [] var dfs = function(root) { if (!root) return; res.push(root.val); dfs(root.left); dfs(ro
2020-11-17 15:02:02
174
原创 9-4#去哪儿网app#对全局事件的解绑
上篇文章中滑动的渐隐渐现效果是对全局window进行事件绑定activated () { window.addEventListener('scroll',this.handleScroll)}而不是对组件进行事件绑定@click=…………也就是说,当回到首页滚动的时候,也会触发这个事件,即对其他组件也有影响。这就要用到keep-alive中的deactivated钩子,即此页面要被换成别的页面的时候,执行这个函数内部的代码deactivated () { wind
2020-11-16 22:59:13
135
原创 9-3#去哪儿网app#Header区域渐隐渐现
app里一开始的效果:当向下滑动的时候,逐渐出现header区域这次的mission就是实现这个效果。新建header组件,进行引用、注册等操作。然后在父组件Detail中给一个足够长的div class=content,让其能实现滚动。设置向下滚动大于60的时候显示fixed,隐藏abs(代码中的类名),用到监听事件,再用if逻辑语句实现v-show的true或false,从而达到显示和隐藏的效果。fixed渐隐渐现用到动态样式:style,给fixed盒子绑定:style="
2020-11-16 22:28:36
149
原创 9-2#去哪儿网app#公用图片画廊组件拆分
点击图片后产生的画廊在多个页面都有,所以可以定义公用组件,在src下创建新文件夹common、gallary以及Gallary.vue,并需要在webpack.base.conf.js设置别名,为了写路径的时候方便,记得重启项目。关键点是轮播图的设置,v-for循环,以及添加点击banner和Gallary互相返回的事件。注意点击gallary(画廊),返回banner的事件的函数内用到this.$emit,向外(banner)触发事件,且banner要接受。banner的js:<s
2020-11-16 20:58:25
169
原创 9-1#去哪儿网app#详情页面
新建分支detail-banner先在recommend中将li改为路由标签<router-link>(类似a标签的功能),一方面是为了实现跳转页面功能,另一方面由于跳转功能是蓝色字体,这样写可以保持原来的灰色,要加个tag="li"。并且写上:to="/detail/"+item.id,这时点击故宫,url发生变化:虽然跳转,但是是空白页面,所以还要加个路由:在router => index.js中添加动态路由:id},{ path: '/detail/..
2020-11-16 19:55:07
290
原创 LeetCode 三题//剑指offer//11.16
1.剑指 Offer 39 数组中出现次数超过一半的数字 518 67.8% 简单 法一:冒泡排序,取新数组中间的值,中位数元素一定为众数/** * @param {number[]} nums * @return {number} */var majorityElement = function(nums) { nums.sort(function(a, b) { return a - b; //升...
2020-11-16 12:24:53
149
原创 8-9&10#去哪儿网app#使用Vuex实现数据共享及Vuex高级用法
mission:home和city之间共享,即在city中切换城市,home会变化。用到Vuex,这是官方推荐的数据框架。先在vscode中创建上图虚线部分的内容,暂且称其为store,我们创建一个state区域,存放公用数据import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({ state: { city: '北京' }})
2020-11-15 23:09:44
377
1
原创 8-8#去哪儿网app#搜索功能
mission:在搜索框输入城市名字或拼音,下面显示一个列表区块。让input框中的输入做一个绑定。双向绑定v-model="keyword",data中也对应上。然后search还要接受city传来的数据cities:<city-search:cities="cities"></city-search>(city.vue),再回到search中,用props接受。data中定义空数组list,写一个监听器,监视keyword的改变,再写一个节流函数。然后就可以在li..
2020-11-15 20:54:59
319
原创 LeetCode 两题//剑指offer//11.15
1.剑指 Offer 15 二进制中1的个数 584 72.9% 简单 法一:for遍历注意toSrting()的时候,参数要设置为2,即转化为二进制的对应的字符串:/** * @param {number} n - a positive integer * @return {number} */var hammingWeight = function(n) { // 法一 遍历 let str = n.toSt...
2020-11-15 17:08:17
265
原创 复习 JS//逻辑运算符 && 数组方法
原文:https://cloud.tencent.com/developer/article/1355843例1:用于赋值 &&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值哦) || : 从左往右依次判断,当当前值为false则继续,为true则返回此值(是返回未转换为布尔值时的原值哦)// => aaavar attr = true && 4 && ...
2020-11-15 15:39:44
475
原创 复习:父子组件与$emit
学习一下其他博主:《vue子组件向父组件传值的方法》, 一起来围观吧 https://blog.youkuaiyun.com/joyvonlee/article/details/90545808
2020-11-15 11:27:38
186
原创 8-6#去哪儿网app#兄弟组件之间联动
如题,希望点击右侧字母表(Alphabet.vue)的字母,左侧列表(List.vue)跳转到对应的首字母城市区域。先创建新分支city-components,然后git一系列操作。在li标签添加点击事件,并在methods中写对应方法:methods: { handleLetterClick(e){ console.log(e.target.innerText); }}然后在网页中点击对象,可以打印出来对应的字母。然后把字母传递给list组件,再
2020-11-14 23:16:29
129
原创 8-5#去哪儿网app#Ajax页面动态数据渲染
hello gitee 又见面了创建新分支!我要再写一遍git流程:git pullgit checkout city-ajaxnpm run strat既然是通过Ajax来获取数据,那么就要在本地添加json文件,其中包含所需要的数据,已准备好city.json,放到mock下。Ajax的请求最好放在最外层的组件即city.vue,这样一次请求就可以得到所有数据。即import、mounted、methods。mounted里调用函数,所以在methods里写上axios方法。log
2020-11-14 18:53:03
171
原创 8-3&4#去哪儿网app#列表布局
类似的操作不赘述,说些我陌生的地方给陌生的你听1.设置1px边框,利用伪元素选择器<style lang="stylus" scoped> @import '~styles/varibles.styl' .border-topbottom &:before border-color: #ccc &:after border-color: #ccc2.设置float:l
2020-11-13 22:54:22
201
原创 8-2#去哪儿网app#搜索框开发
老生常谈,创建branch,git命令~注意点:search组件在模板中引入后,注意template下只能有一个盒子,所以最外面要有div,否则报错:<template> <div> <city-header></city-header> <city-search></city-search> </div></template>在对input设置样式
2020-11-13 21:32:35
192
1
原创 8-1#去哪儿网app#城市选择页面路由配置
mission如题,创建新分支city-router然后进入travel git输入命令 git pull => git checkout city-router => npm run dev
2020-11-13 20:57:06
224
原创 7-9#去哪儿网app#首页父子组件数据传递
Ajax的data里的数据是北京(index.json),然后传给了Home.vue的data里的city:getHomeInfoSucc(res) { res = res.data if (res.ret && res.data) { const data = res.data this.city = data.city } // console.log(res);} 然后又传给了子组件,子组件又接受了cit
2020-11-13 16:41:51
146
DigitalVideoRepair3.7.0修复mp4
2020-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅