自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 存一些好文

http缓存机制目前是一篇,都是我自己看了的!!!

2021-03-29 22:28:04 84

原创 面试复盘-树相关

//输入:const list = [ { key: 1, data: 'A', parentKey: 0 }, { key: 2, data: 'B', parentKey: 0 }, { key: 3, data: 'C', parentKey: 1 }, { key: 4, data: 'D', parentKey: 1 }, { key: 5, data: 'E', parentKey: 2 }, { key: 6, data: 'F', paren

2021-03-22 22:15:41 85

原创 笔试复盘 - 最长回文子串

回文串的经典题型:最长回文子串回文串的长度可能是奇数,也可能是偶数,所以要分开考虑ABBA: 回文中心是BB之间的间隙;ABA:回文中心是B为了简单化问题我们可以用一个字符串中没出现过的字符来进行填充,让它都变成长度为奇数的串,如#A#B#B#A#(后面都以此为例)然后再利用中心扩散的思想,求解以str[0]为回文中心是,左边扩散是边界,右边是A,故它能扩散0步我们可以填这样一个表ch#A#B#B#A#index012345678

2021-03-20 22:56:43 114

原创 小米2019/B笔试题

是牛客上的这套题 小米2019秋招前端开发笔试题(B)21题编程设计一个函数,两个参数,第一个参数为整数的数组,第二个参数为标杆值,取数组中任意符合两个数相加为标杆值的下标相加到一起的值进行数据处理,我用的二维数组[[值, 原下标]],然后排序,再按照常规的头尾相加判断是否等于标杆值,但这里要注意会有连续相等的值var line = readline();var lines = line.split(',');var len = lines.length;var target = parseI

2021-03-16 21:31:53 133

原创 腾讯2017秋招笔试编程题

是牛客的这套题 腾讯2017秋招笔试编程题编码仔细找规律,以题目所给例子来看baca最高位:可取[a,b)以及b次高位:若最高位[a,b),则它有25种取法;最高位b,则可取[a)以及a次低位:若最高位[a,b),则有25*25种;最高位b,次高位[a)则有25种(这里是0);若最高位b,次高位a,则可取[a,c)以及c最低位:若最高位[a,b),则有252525种;最高位b,次高位[a)则有25*25种(这里是0);若最高位b,次高位a,次低位[a,c),则有25种;若最高位b,次高位a,次

2021-02-20 16:57:45 75

原创 腾讯2020校园招聘-后台(3)

假期一个简单的动态规划,注释写的很明白了var n = parseInt(readline());var p1 = new Array(n);var p2 = new Array(n);var line = readline();var lines = line.split(' ');for(let i = 0; i < n; i++){ p1[i] = parseInt(lines[i]);}line = readline();lines = line.split(' '

2021-02-19 16:03:30 56

原创 腾讯2020校园招聘-后台

链接:牛客 腾讯2020校园招聘-后台记录一下自己的想法以及一些大佬的分享的算法压缩算法var line = readline();var solution = (str) => { //递归,每次处理最内层 const fn = (str) => { let x = -1, y = -1, z = -1, i = 0; //找到最内层[ | ]对应的下标 while(i < str.length){

2021-02-06 20:11:15 223

原创 js 第n个排列

来源:力扣给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列以k=3为例,观察数据我们可以分成这样三组数据(1)“123” “132”(2)“213” “231”(3)“312” “321”我们先确定k在哪一组,显然k应在第二组(3/2向上取整)再分为两组(已经确定以2开头,此

2020-09-06 09:22:50 160

原创 剑指思路3~6

文章目录数组中的重复数字最终还是决定二刷剑指了,顺便记录一下思路(js实现),加深印象,大概按一周一篇的速度发一下数组中的重复数字

2020-08-16 00:55:50 63

原创 js 有序矩阵中第K小的元素

文章目录找规律查找演示更一般的例子给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。找规律这是力扣网站的一道题,题目给了一个例子matrix = [[ 1, 5, 9],[10, 11, 13],[12, 13, 15]],k = 8我们把它拆分成这样几个矩阵[1][ [ 1, 5][10, 11] ][ [ 1, 5, 9],[10, 11, 13],[12,

2020-07-02 10:52:37 259

原创 JS数组 map方法

文章目录定义语法定义返回一个新数组,数组中的元素为原始数组调用函数处理后的值,按原始数组元素数据返回,不改变原始数组语法array.map(function(currentValue,index,arr), thisValue)

2020-06-27 17:59:13 289

原创 找无重复字符的最长子串的长度

文章目录滑动窗口法代码实现题目:给出一字符串,找其无重复字符的最长子串的长度滑动窗口法从第一个字符开始,找出没有重复字符的子串s1,此时max等于s1的长度从第二个字符开始,找出没有重复字符的子串s2,比较s2的长度和max,更新max的值依次类推,直到最后一个字符过程如下:以“pwwkew”为例1.(pw)wkew2.p(w)wkew3.pw(wke)w4.pww(kew)5.pwwk(ew)6.pwwke(w)代码实现var lengthOfLongestSubstri

2020-06-09 18:37:54 119

原创 排序算法(插入类排序)

文章目录插入类排序直接插入排序折半插入排序希尔排序根据耿国华老师的sopc课程总结(都以从小到大排序为例)插入类排序直接插入排序将第i个记录直接插入到前面排好序的i-1个记录中。将第i个记录K_i顺次与前面i-1个记录比较,将所有大于K_i的记录向后移,当遇到一个小于或者等于K_i的记录时,该记录后必有一个空位,此时把K_i插入空位即可完整的直接插入排序从i=2开始,将第一个记录记为已排好序的序列//直接插入排序 void InsSort(int *num, int len){ if(num

2020-05-19 16:54:32 278

原创 C语言实现打印1到最大的n位数

文章目录常规思路的陷阱改进代码实现代码的实现过程问题:输入一个数字n,按顺序打印从1到最大的n位十进制数常规思路的陷阱用一个循环从1开始逐个打印 ,这里并没有给出n的范围,当n很大时,整形(int)和长整型(long)都可能溢出改进解决这个问题需要表达一个大数,最常用也最容易的方法是用字符串或数组表达大数代码实现先实现打印部分(这里注意要满足阅读习惯,如098就不满足阅读习惯,98才满足)//按照阅读习惯打印数字,碰到第一个非0字符才开始打印 void printNumber(char *

2020-05-14 17:58:19 588

原创 08 判断栈的出栈序列

文章目录思路代码实现问题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列(注意:这两个序列的长度是相等的)思路建立一个辅助栈,把输入的第一个序列中的数字依次压入辅助栈,并按照第二个序列的顺序一次从该栈中弹出数字eg:入栈顺序:1,2,3,4,5;出栈顺序:4,5,3,2,1。进栈出栈

2020-05-13 15:13:34 393

原创 07 树的子结构

文章目录思路代码实现问题:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路在树A中找到跟树B根结点值一样的结点R判断树A中以R为根结点的子树是否包含和树B一样的结构代码实现/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} *///找到根结点值相等的结点Rfunction HasSubtree(pRoot1, pR

2020-05-12 22:18:18 69

原创 06 旋转数组中的最小数字

文章目录旋转数组思路代码实现题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1旋转数组经观察,旋转数组实际上可以划分为两个排序的子数组,前面数组的元素都大于或等于后面数组的元素,且最小的元素刚好是两个数组的分界符思路因为本题给的数组一定程度上是排序的,所以我们可以使用类似二分查找法的思路来解决问题用两个指针分别指向第一个元素和最后

2020-05-12 21:40:29 100

原创 三种方法实现求二进制中1的个数

文章目录位运算基本思路(可能造成死循环)更优解法还有一种解法问题:输入一个整数,输出其二进制表示中1的个数位运算位运算是把数字用二进制表示后,对每一位上0或1的运算与 &或 |异或 ^:相同为0,相异为1左移 <<:m << n,左移n位,最左边的n位将被丢弃,同时在右边补上n个0右移 >>:与左移相反基本思路(可能造成死循环)先判断输入的整数最右一位是不是1接着将整个数字右移一位,此时,原来处于从右边数第2位的数字就成了最右一位了,再

2020-05-12 10:37:25 877

原创 05 合并两个排序链表

文章目录思路代码实现题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则思路题目要得到单调不减的链表,即相邻结点可以相等或者后一结点大于前一结点确定头结点,比较两个链表的头结点,小的即为结果链表的头结点,假设此处为link1link1指针后移,link2指针位置不变,再次比较,数值小的连接在结果链表上以此类推,利用递归调用,直到某一链表到达尾部,将另一链表直接接在结果链表上代码实现/*function ListNode(x){ this

2020-05-10 17:55:08 74

原创 04 反转链表

文章目录思路代码实现题目:输入一个链表,反转链表后,输出新链表的表头思路用一个中间数组temp存原链表的值,再利用栈的特性(先进后出),用pop()方法将数据逆向存回原链表代码实现/*function ListNode(x){ this.val = x; this.next = null;}*/function ReverseList(pHead){ // write code here var temp = []; var currentNode =

2020-05-10 17:34:26 102

原创 03 利用两个栈实现队列的先进先出特性

原理

2020-05-09 16:35:52 503

原创 02 根据前序中序遍历重建二叉树

文章目录二叉树前序遍历二叉树中序遍历根据前序中序遍历重建二叉树问题:给定一个二叉树的前序遍历和中序遍历结果,要求重建这个二叉树二叉树前序遍历先输出当前结点,再依次遍历输出左结点和右结点二叉树中序遍历先遍历输出左结点,再输出当前结点,再遍历输出右结点根据前序中序遍历重建二叉树思路:前序遍历序列的第一个结点一定是根节点在中序遍历序列中找到前序遍历第一个结点的位置,该位置前部为左子树...

2020-05-08 13:50:55 111 1

原创 01 从尾到头打印链表

js实现从尾到头打印链表题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList先存入数组再将数组逆序打印我的思路是将链表内容先存到一个中间数组,再将这个中间数组逆序放入结果数组中(也可以直接进行数组翻转)/*function ListNode(x){ this.val = x; this.next = null;}*/function printListFr...

2020-05-08 12:10:13 143 1

空空如也

空空如也

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

TA关注的人

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