
算法
SYWsuperman
努力写100篇原创博客!
展开
-
小题大做-判断回文链表
题干编写一个函数,检查输入的链表是否是回文的。难度为easy,但是感觉这个小题挺有意思,值的写写深拷贝并反转链表首先深拷贝链表(这里踩了一个坑,Object.assign({}, head)只能深拷贝head,但是head.next并没有被深拷贝,所以这个不可以;而JSON.parse(JSON.stringfy(head))可以完美深拷贝,但是当数据量过于庞大的时候,会执行栈溢出)反转深拷贝以后的链表比较两个链表var isPalindrome1 = function(head) {原创 2020-09-01 15:46:32 · 177 阅读 · 0 评论 -
小题大做-删除排序链表中的重复元素
这是我7月12号写的,上周没偷懒,只是忘记发布了!!!题干给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。刚看到这个题的时候,没有注意到该链表是排序链表,走了一些弯路,第一次提交如下主副指针首先声明两个指针,一个主指针,一个副指针,移动副指针,看主指针后面有没有与主指针重复的值,有的话,就跳过这个主指针,没有的话,将主指针的值放在新的链表的结尾,主指针移动时,记录每一次主指针的值,如果遇到已经有过的值,直接跳过时间复杂度O(n^2)空间复杂度O(n)var原创 2020-07-20 15:31:56 · 176 阅读 · 0 评论 -
小题大做-最长回文子串
写在前面李小龙的妻子琳达在《我眼中的布鲁斯》回忆里写道,她问丈夫:“作为世界第一,是不是不畏惧所有的对手?”。李小龙否认:“我不是世界第一,我也有害怕的对手。”妻子听到十分惊讶,追问:“什么样的对手让你害怕?”李小龙说“我不怕会一万种招式的人,我只怕把一种招式练了一万遍的对手。”对于算法题,也是如此,我们追求的不是把一种题解出来,而是找到这道题所有的解法,所以推出小题大做系列,意在深度剖析算法题,做到将一种招式练一万遍。希望可以通过这个系列的博客,锻炼自己使用多种方式解决遇到的问题的能力。题干原创 2020-06-27 23:44:47 · 332 阅读 · 1 评论 -
前端基础算法
排序公共方法交换arr里面i1索引与i2索引的数据的位置function exchange(arr, i1, i2) { let tmp = arr[i1]; arr[i1] = arr[i2]; arr[i2] = tmp;}选择排序选择排序就是通过不断遍历数组未排序部分找到最小值,将其放在未排序部分的最前面function selectSort(arr) { let l...原创 2020-03-18 23:37:50 · 772 阅读 · 0 评论