自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Leetcode #300: 最长上升子序列 [动态规划 + 二分查找]

题目给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?题解...

2019-06-28 05:43:05 236

原创 Leetcode #34: 在排序数组中查找元素的第一个和最后一个位置 [二分查找]

题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,1...

2019-06-28 03:27:40 201

原创 Leetcode #153: 寻找旋转排序数组中的最小值 [二分查找]

题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0题解思路:仍然是比较经典的binary sear...

2019-06-27 05:58:32 176

原创 Leetcode #162: 寻找峰值

题意峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引...

2019-06-27 04:13:34 200

原创 Leetcode #35: 搜索插入位置

题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0...

2019-06-27 01:00:40 90

原创 Leetcode #278: 第一个错误版本

题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测...

2019-06-27 00:39:23 122

原创 Leetcode #7: 正数反转

题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。题解这道题...

2019-06-26 12:36:21 96

原创 Leetcode #15: 三数之和 [HashMap+双指针]

题目:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]题解1: 排序...

2019-06-26 09:50:38 380

原创 Leetcode #369: 给单链表加一

题目用一个 非空 单链表来表示一个非负整数,然后将这个整数加一。你可以假设这个整数除了 0 本身,没有任何前导的 0。这个整数的各个数位按照 高位在链表头部、低位在链表尾部 的顺序排列。示例:输入: [1,2,3]输出: [1,2,4]题解这是一道linked list题,有几种情况需要考虑,第一种情况正常,末尾不为9的时候直接+1第二种情况,末尾为9的时候要向前进位...

2019-06-26 06:25:49 1376

原创 Leetcode #276: 栅栏涂色 [动态规划]

题目有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,每个栅栏柱可以用其中一种颜色进行上色。你需要给所有栅栏柱上色,并且保证其中相邻的栅栏柱 最多连续两个 颜色相同。然后,返回所有有效涂色的方案数。注意:n 和 k 均为非负的整数。示例:输入: n = 3,k = 2输出: 6解析: 用 c1 表示颜色 1,c2 表示颜色 2,所有可能的涂色方案有: ...

2019-06-26 04:31:18 1932

原创 Leetcode #265: 粉刷房子2

HARD难度,思路和256几乎完全相同,先初始化第一排然后用动态转移方程,但是难点在于题目中要求Time complexity为O(K*N),如果用for循环来寻找前一排的最小值花费过大,我使用的是Arrays.sort(),时间复杂度为O(logN)。找到最小值以后和当前值的上一排做对比,来确定上一排的最小值是不是自己。class Solution { public int minCo...

2019-06-26 03:19:12 522

原创 Leetcode #256: 粉刷房子 [动态规划]

动态规划思想,建立一个新的total_cost arrray,初始化第一排,动态转移方程是total_cost[i][0] = costs[i][0] + total_cost[i-1]里其他两个的较小的class Solution { public int minCost(int[][] costs) { int n = costs.length; i...

2019-06-26 02:53:19 533

原创 Leetcode #36: 有效的数独

哈希表第一种方法是用HashMap来判定class Solution { public boolean isValidSudoku(char[][] board) { // init data HashMap<Integer, Integer> [] rows = new HashMap[9]; HashMap<Integer, Integer&g...

2019-06-25 06:59:52 102

原创 Leetcode #325: 和等于 k 的最长子数组长度

Leetcode #325: 和等于 k 的最长子数组长度暴力破解法:哈希表:暴力破解法:class Solution { public int maxSubArrayLen(int[] nums, int k) { int len = nums.length; int sum = 0; int max = 0; int[...

2019-06-25 04:33:46 3831

原创 阿里云一面

自我介绍1.gulp和webpack区别2.webpack4.0更新了什么新属性3.vue的内部原理和mvvm框架4.dom树是如何操作的5.闭包及作用场景6.事件委托7.防抖截流8.冒泡捕获9.深浅克隆10.项目中遇到的困难11.dom操作什么时候会效率低下 评价:基础很扎实,但是项目经验不足,缺少前后交互的项目...

2018-10-05 12:48:59 266

原创 LEETCODE刷题笔记

#832 flipping an image^符号代表异或运算符,相同则为0,不同则为1,1^0=1 ; 0^0=0 ; 1^1=0 ; 0^1=1for(循环变量类型 循环变量名:要被遍历的对象)#771 Jewels and Stonechar[] Jstr = J.toCharArray(); 把str字符串转化为char数组.length是array的一个属性,.length()是str的...

2018-05-30 09:12:19 174

原创 VUE

1.使用过css预处理么?喜欢哪个?less的优点 与sass的区别结构清晰,便于扩展。可以方便地屏蔽浏览器私有语法差异。可以轻松实现多重继承。完全兼容 CSS 代码,可以方便地应用到老项目中。less主要是为了模块化迭代速度快sass是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护sass里封装了好多方法,可以直接拿去作为微型js来用2.v...

2018-04-24 14:45:04 312 1

原创 复习(1)

1.dom结构,两个节点之间可能存在哪些关系以及如何在节点之间任意移动    dom生成一个dom树,parentnode,childnode,firstchild2.dom操作,增删改查     .createElement(), createTextNode(), appendChild(),removeChild(),replaceChild(),cloneChild(),insertBef...

2018-04-19 09:18:08 151

原创 大燕网面经

1.前端工作流    包管理工具gulp,    任务流工具grunt,gulp,    模块打包工具webpack,    生产依赖react和bootstrap,    开发依赖gulp,webpack2.css隐藏有几种方法,display和visibility区别    opacity设置为0,    visibility设置为hidden,    display设置为none,    p...

2018-04-17 17:02:33 150

原创 闭包,立即执行函数(IIFE),this指向

闭包概念-&gt;闭包作用-&gt;立即执行函数-&gt;for in例子如果每次输出不同的值( 闭包,定时器第二个变量,promise/let)-&gt;在jquery中的使用由于javascript中特有的作用域,函数中的局部变量不能够被外部获得或使用,而函数内部可以使用外部的全局变量,并且javascript的垃圾回收机制会在function执行过后自动销毁函数内部的变量。这就是我们就需要运...

2018-04-17 14:20:59 4873

原创 事件委托,冒泡,捕获,深度克隆

1. 事件冒泡 事件捕获 监听者模式-&gt;事件流-&gt;addEventLisnter/removeEventLisenter-&gt;attachEvent/detachEvent-&gt;冒泡和捕获的区别-&gt;事件委托早起的事件是用来缓解服务器压力的一种手段,当发生特定交互的一瞬间,如click, mousemove, onkeydown等事件时,我们可以通过侦听器来监听事件,并作出...

2018-04-16 18:24:06 189

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除