数据结构
文章平均质量分 92
业余敲代码
以前小前端,现在开始搞后端
展开
-
mysql原理(mysql是怎样运行的)
一、mysql基础认识:1、MySQL的客户端/服务器架构:(1)mysql客户端服务端场景:a.启动MySQL服务器程序b.启动MySQL客户端程序并连接到服务器程序。c.在客户端程序中输入一些命令语句作为请求发送到服务器程序,服务器程序收到这些请求后,会根据请求的内容来操作具体的数据并向客户端返回操作结果(2)mysql进程:我们的MySQL服务器程序和客户端程序本质上都算是计算机上的一个进程,这个代表着MySQL服务器程序的进程也被称为MySQL数据库实例,简称数据库实例;我们启动的M原创 2021-07-19 14:26:22 · 3913 阅读 · 6 评论 -
leetcode(22)山脉数组的峰值索引的js实现
一.题目描述:我们把符合下列属性的数组 A 称作山脉:A.length >= 3存在 0 < i < A.length - 1 使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0原创 2019-01-19 23:15:13 · 231 阅读 · 0 评论 -
leetcode(17)自除数的js 实现
@TOC1欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来...原创 2019-01-14 23:52:46 · 215 阅读 · 0 评论 -
leetcode(23)缺失数字的js实现
一.题目描述:给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8二.js代码实现:1.实现思路:直接对前n项进行求和与从1到n的数字之和相比,返回差值即可2.js代码:/** * @param {number...原创 2019-01-20 21:46:27 · 249 阅读 · 0 评论 -
leetcode(24)三角形的最大周长的js实现
一.题目描述:给定由一些正数(代表长度)组成的数组 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 <...原创 2019-01-21 00:07:10 · 416 阅读 · 0 评论 -
leetcode(12)爬楼梯的js实现
一.题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 1 阶 + 1 阶2 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。4. 1 阶 + 1 阶 + 1 阶5. ...原创 2019-01-09 22:01:57 · 499 阅读 · 0 评论 -
leetcode(18) 最大三角形面积的js实现
222原创 2019-01-15 20:29:16 · 230 阅读 · 0 评论 -
leetcode(19)最大连续1的个数的js实现
19原创 2019-01-16 22:13:13 · 204 阅读 · 0 评论 -
leetcode(25)旋转数组的js实现
一.题目描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3...原创 2019-01-22 18:46:48 · 319 阅读 · 0 评论 -
leetcode(26)字符的最短距离的js实现
一.题目描述:给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。示例 1:输入: S = “loveleetcode”, C = ‘e’输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]说明:字符串 S 的长度范围为 [1, 10000]。C 是一个单字符,且保证是字符串 S 里的字符。...原创 2019-01-22 22:03:18 · 411 阅读 · 0 评论 -
leetcode(27)按奇偶排序数组的js实现
一.题目描述:给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i] <=...原创 2019-01-22 22:23:34 · 227 阅读 · 0 评论 -
leetcode(28)按奇偶排序数组II的js实现
一.题目描述:给定一个非负整数数组 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.l...原创 2019-01-22 22:47:51 · 232 阅读 · 0 评论 -
leetcode(29)转换成小写字母的js实现
一.题目描述:实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”二.js代码实现:1.实现思路:(1)直接使用js的toLower...原创 2019-01-22 23:37:03 · 136 阅读 · 0 评论 -
leetcode(11)只出现一次的数字的js实现
一.题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4二.js代码实现:1.实现思路:(1)先对数组进行排序,从小到大排序(2)对数组的第一个元素和最...原创 2019-01-08 23:40:28 · 617 阅读 · 0 评论 -
leetcode(21)键盘行的js实现
20原创 2019-01-18 21:21:43 · 268 阅读 · 0 评论 -
leetcode(16)各位相加的js实现
一.题目描述:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?二.js代码实现:1.实现思路:(1)使用循环的方法进行判断(2)使用数学余九法进行...原创 2019-01-13 23:46:05 · 244 阅读 · 0 评论 -
JS十大排序算法实现
一.冒泡排序(Bubble Sort):1.概念: 作为最简单的排序算法之一,冒泡排序还有一种优化算法,就是立一个flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序。2.两种情况: 最快情况: 当输入的数据已经是正序时 最慢情况: 当输入的数据是反序时3.冒泡排序JavaScript代码实现: function bubbleSort(arr)...原创 2018-12-13 23:15:02 · 351 阅读 · 0 评论 -
leetcode(4)加一的js实现
一.题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...原创 2019-01-04 10:24:20 · 257 阅读 · 0 评论 -
leetcode(5)寻找峰值的js实现
一.题目描述:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引...原创 2019-01-05 13:48:00 · 473 阅读 · 0 评论 -
leetcode(6)移动零的js实现
一.题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。二.js代码实现:1.实现思路:(1)从数组的最后一个元素往前面遍历循环,如果该元素为0,则将该元素0删除,并将其添加到数组的末尾(2)...原创 2019-01-05 15:04:58 · 392 阅读 · 0 评论 -
leetcode(13)整数反转的js实现
一. 题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。二.js代码实...原创 2019-01-10 22:51:38 · 528 阅读 · 0 评论 -
leetcode(1)回文数的js实现
一.题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。二....原创 2019-01-01 21:39:30 · 507 阅读 · 0 评论 -
leetcode(7)两数之和的js实现
一.题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]二.j...原创 2019-01-06 13:50:36 · 259 阅读 · 0 评论 -
leetcode(8)排列硬币的js实现
一.题目描述:你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤因为第四行...原创 2019-01-06 14:25:21 · 287 阅读 · 0 评论 -
leetcode(9)计数质数的js实现
一.题目描述:统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。二.js代码实现:1.实现思路:(1)如果直接判断从2到该数的方法,执行时间会超时,可以用埃拉托斯特尼筛法对质数进行筛选(2)埃拉托斯特尼筛法,要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是...原创 2019-01-06 15:54:15 · 484 阅读 · 0 评论 -
leetcode(14)移除元素的js实现
一.题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中...原创 2019-01-11 17:41:45 · 215 阅读 · 0 评论 -
leetcode(2)寻找两个有序数组的中位数的js实现
一.题目描述:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位...原创 2019-01-02 17:02:48 · 926 阅读 · 1 评论 -
leetcode(10)x的平方根的js实现
一.题目描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。二.js代码实现:1.实现思路:直接对返回值进行取整即可2.js...原创 2019-01-07 14:40:17 · 623 阅读 · 1 评论 -
leetdode(20)平方数之和的js实现
19原创 2019-01-17 22:06:52 · 337 阅读 · 0 评论 -
leetcode(3)最大子序和的js实现
一.题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6二.js代码实现:1.实现思路:(1)先用一个变量s存储序列和,初始值设为第一个元素的值,max存储最大序列值(2)对数组进行遍历,如果...原创 2019-01-03 14:06:27 · 232 阅读 · 0 评论 -
leetcode(15)搜索插入位置的js实现
一.题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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-01-12 23:20:47 · 278 阅读 · 0 评论 -
leetcode(30)有效的山脉数组的js实现
一.题目描述:给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[i]A[i] > A[i+1] &g...原创 2019-01-23 23:32:06 · 111 阅读 · 0 评论 -
leetcode(31)最小差值I的js实现
一.题目描述:给定一个整数数组 A,对于每个整数 A[i],我们可以选择任意 x 满足 -K <= x <= K,并将 x 加到 A[i] 中。在此过程之后,我们得到一些数组 B。返回 B 的最大值和 B 的最小值之间可能存在的最小差值。示例 1:输入:A = [1], K = 0输出:0解释:B = [1]示例 2:输入:A = [0,10], K = 2输出:6...原创 2019-01-23 23:56:31 · 364 阅读 · 0 评论 -
数据结构知识
一:排序(1)对于评述算法优劣术语的说明: 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度: 一个算法执行所耗费的时间 空间复杂度: 运行完一个程序所需内存...原创 2018-12-07 22:09:38 · 92 阅读 · 0 评论