自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 week08学习总结

算法训练营第八周 学习笔记第8周 第16课 | 位运算1. 位运算基础及实战要点位运算符机器里的数字表示方式和存储格式就是二进制算数移位与逻辑移位异或:相同为0,不同为1。也可用“不进位加法”来理解。位运算的应用第8周 第17课 | 布隆过滤器和LRU缓存1. 布隆过滤器的实现及应用HasgTable + 拉链存储重复元素一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。优点是空间效率和查询时间都远远超过一般算法;

2020-08-02 22:23:59 102

原创 week07 学习总结

算法训练营第七周 学习笔记第7周 第13课 | 字典树和并查集1. Trie树的基本实现和特性字典树的数据结构字典树,即Trie树,又称单词查找树或键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点:最大限度地减少无谓的字符串比较,查询效率比哈希表高。字典树的核心思想Trie树的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。字典树的基本性质节点本身不存完整

2020-08-02 21:43:17 159

原创 Laravel的集合Collection

目录简介创建集合可用的方法allfilterfirstimplodekeys简介Illuminate\Support\Collection 类提供了一个更具可读性的、更便于处理数组数据的封装。具体例子看下面的代码。我们使用了 collect 函数从数组中创建新的集合实例,对其中的每个元素运行 strtoupper 函数之后再移除所有的空元素:$collection = collect(['taylor', 'abigail', null])->map(function ($name) {

2020-07-21 15:41:22 406

原创 week06 学习笔记

算法训练营第六周 学习笔记第6周 第12课 | 动态规划1. 动态规划的实现及关键点分治+回溯+递归+动态规划递归代码模板# Pythondef recursion(level, param1, param2, ...): # recursion terminator if level > MAX_LEVEL: process_result return # process logic in current level pro

2020-07-19 19:09:36 97

原创 week04学习总结

算法训练营第四周 学习笔记问题第4周 第9课 | 深度优先搜索和广度优先搜索1. 深度优先搜索、广度优先搜索实现和特性遍历搜索在树(图/状态集)中寻找特定结点搜索 - 遍历每个节点都要访问一次每个节点仅仅访问一次对节点的访问顺序不限深度优先: depth first search广度优先: breadth first search其它:优先级优先深度优先# 递归写法visited = set() def dfs(node, visited): i

2020-07-12 22:38:07 88

原创 week03学习总结

算法训练营第三周 学习笔记问题难度开始加大了,好反复看好几遍,基础太差,练习不够。第7课 | 泛型递归、树的递归1.递归的实现、特性以及思维要点树的面试题解法一般都是递归-递归 Recursion递归 - 循环通过函数体来进行的循环类似于栈的形式一层一层进去,栈本身就是递归调用时,系统给我们做的调用栈Python 代码模板// pythondef recursion(level, param1, param2, ...): # recursion terminator

2020-06-26 22:36:15 92

原创 week02学习总结

算法训练营第二周 学习笔记问题第2周 第5课 | 哈希表、映射、集合哈希表 Hash table定义:哈希表(Hash table),也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫作散列函数(Hash Function),存放记录的数组叫作哈希表(或散列表)。工程实践:电话号码簿用户信息表缓存(LRU Cache)键值对存储(Redis)散列函数的特点:确定性散列碰撞

2020-06-26 15:21:03 101

原创 week01学习总结

算法训练营第一周 学习笔记问题LeetCode困难级别的题较难理解,需要稳扎稳打多练习基础题,理解困难题的思路;Stack源码和Queue源码的讲解需要多看。常用工具配置刻意练习基本功和编程指法Best Practices/Top tips时间复杂度Big O notationO(1): Constant Complexity 常数复杂度O(log n): Logatithmix Complexity 对数复杂度O(n): Linear Complexity 线性时间

2020-06-21 21:20:00 174 1

原创 Git基本命令

将本地仓库同步到远程GitHub仓库git remote add origin [email protected]:xxx.gitgit push -u origin master

2020-06-08 16:46:07 92

转载 JSON.parse() 和 JSON.stringify()的区别

parse()函数parse()用于将一个字符串解析成一个json对象,例如var str = '{"name":"jack","age":"18"}';JSON.parse(str);结果是:Object {name:"jack",age:"18"}stringify()函数stringify()是从一个对象中解析出字符串,例如var obj = {a:1,b:2};JSON...

2019-11-13 17:42:00 83

转载 JS中三种定义变量的方式const,var,let的区别

1.const定义的变量不可以修改,而且必须初始化。1 const b = 2;//正确2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + b);//有输出值4 // b = 5;5 // console.log('函数外修改const定义b:' + b);//无法输出 2.var 声明变量,定义的变量可以修改,如果不初始化会...

2019-11-13 15:02:57 136

转载 Web Service (SOAP)和HTTP接口的区别

什么是web service?soap请求 (Simple Object Access Protocol,简单对象访问协议) 是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化。SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换...

2019-08-22 10:27:15 1171

原创 PHP引用赋值和传递赋值

传递赋值$a =3;$b=5;$a=$b;echo $a,$b; // 5 5传递赋值$a=3;$b=5;$a=&$b; //把b的地址赋值给 $a 更改b的值 就是更改a的值$b=9;echo $a,$b; // 9 9unset($b);echo $a; // 9 //变量有个机制 假如有多个变量指向同一个地址 取消其中一...

2019-08-16 15:00:34 449

原创 409. 最长回文串

题目原文给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。解题思路回文串左右对称,统计每个字母出现次数,若存在奇数字...

2019-08-16 11:17:49 105

原创 884. 两句话中的不常见单词

题目原文给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = “this apple is sweet”, B = “this apple is sour”输出:[“sweet”,“s...

2019-08-10 18:56:53 95

原创 961. 重复N次的元素

题目原文在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。返回重复了 N 次的那个元素。示例 1:输入:[1,2,3,3]输出:3示例 2:输入:[2,1,2,5,3,2]输出:2示例 3:输入:[5,1,5,2,5,3,5,4]输出:5提示:4 <= A.length <= 100000 <= A[i] < ...

2019-08-10 14:18:00 180

原创 1078. Bigram 分词

题目原文给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。示例 1:输入:text = “alice is a good girl she ...

2019-08-10 13:33:35 274

原创 204.计数质数

题目原文统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。解题思路厄拉多塞筛法说明:i是从(2,int(n**0.5)+1)而非(2,n).这个技巧是可以验证的,比如说求9以内的质数个数,那么只要划掉sqrt(9)以内的质数倍数,剩下的即全为质数. 所以在划去倍数的时候也是从i*i开始划掉...

2019-08-10 12:56:49 139

原创 665.非递减数列

题目原文给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),满足 array[i] <= array[i + 1]。示例 1:输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例...

2019-08-10 10:12:34 100

原创 832. 翻转图像

题目原文给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,...

2019-07-17 22:14:32 93

原创 896. 单调数列

题目原文如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。示例 1:输入:[1,2,2,3]输出:true示例 2:输入:[6,...

2019-07-17 17:23:10 156

原创 1122. 数组的相对排序

题目原文给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,...

2019-07-17 16:14:36 492

原创 976. 三角形的最大周长

题目原文给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <= A.length <= 1...

2019-07-16 17:37:53 131

原创 922. 按奇偶排序数组 II

题目原文给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。提示:2 <= A.lengt...

2019-07-16 17:20:42 115

原创 1029. 两地调度

题目原文公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30。第三个人去 ...

2019-07-16 16:51:02 121

原创 1005. K 次取反后最大化的数组和

题目原文给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后,返回数组可能的最大和。示例 1:输入:A = [4,2,3], K = 1输出:5解释:选择索引 (1,) ,然后 A 变为 [4,-2,3]。示例 2:输入:A = [3,-...

2019-07-16 16:17:43 156

原创 944. 删列造序

题目原文给定由 N 个小写字母字符串组成的数组 A,其中每个字符串长度相等。删除 操作的定义是:选出一组要删掉的列,删去 A 中对应列中的所有字符,形式上,第 n 列为 [A[0][n], A[1][n], …, A[A.length-1][n]])。比如,有 A = [“abcdef”, “uvwxyz”],要删掉的列为 {0, 2, 3},删除后 A 为[“bef”, “vyz”], ...

2019-07-16 10:10:38 121

原创 860. 柠檬水找零

题目原文在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[...

2019-07-15 17:19:16 73

原创 455.分发饼干

题目原文假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正...

2019-07-15 16:20:27 68

原创 155. 最小栈

题目原文设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);...

2019-07-15 11:05:44 101

原创 496. 下一个更大元素 I

题目原文给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,...

2019-07-12 22:46:03 70

原创 1021. 删除最外层的括号

题目原文有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个非空...

2019-07-11 22:28:14 139

原创 844. 比较含退格的字符串

题目原文给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例 1:输入:S = “ab#c”, T = “ad#c”输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = “ab##”, T = “c#d#”输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = “a##...

2019-07-11 16:37:29 126

原创 532. 数组中的K-diff数对

题目原文给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽管数组中有两个1,但我们只应...

2019-07-10 23:17:23 190

原创 977. 有序数组的平方

题目原文给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= A.length <= 10000-10000 <= A[i] <= 10000...

2019-07-08 22:21:57 61

原创 925. 长按键入

题目描述你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。示例 1:输入:name = “alex”, typed = “aaleex”输出:true解释:‘alex’ 中的 ‘a’ 和 ‘e’ 被...

2019-07-07 22:58:37 256

原创 788. 旋转数字

题目描述我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方;6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数 N, 计算...

2019-07-07 21:36:02 126

原创 824. 山羊拉丁文

题目描述给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"。例如,单词"apple"变为"applema"。如果单词以辅音字母开头(即非元音字母),移除第一个字符并将它放到末尾...

2019-07-07 16:22:59 120

原创 859.亲密字符串

题目原文给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。示例 1:输入: A = “ab”, B = “ba”输出: true示例 2:输入: A = “ab”, B = “ab”输出: false示例 3:输入: A = “aa”, B = “aa”输出: true示例 ...

2019-07-07 15:31:31 91

原创 804.唯一摩尔斯密码词

题目描述国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",...

2019-07-07 14:36:42 81

空空如也

空空如也

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

TA关注的人

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