算法题
ShiningDays
just do it
展开
-
八大排序手写
八大排序算法原创 2022-10-17 10:15:37 · 218 阅读 · 0 评论 -
数据结构——图
图原创 2022-10-10 16:20:08 · 283 阅读 · 0 评论 -
十进制转化为二进制
1、整数 除2取余,十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。 2、小数 十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 ...原创 2022-04-04 16:47:35 · 60 阅读 · 0 评论 -
关于找到链表中点时快慢指针的选取-剑指 Offer II 027. 回文链表
快指针的慢指针的两倍移动速度,如何在快指针遍历完链表后,慢指针刚好到达链表中部。 剑指 Offer II 027. 回文链表 利用到了快慢指针,不用对奇数情况单独加判断了。 var isPalindrome = function(head) { if(head.next==null){ return true; } let dummy=new ListNode(0); dummy.next=head; let slow=dummy,fast=dumm原创 2022-03-29 10:10:22 · 525 阅读 · 0 评论 -
剑指 Offer II 026. 重排链表-js
1、通过快慢找到中点,分为前后两个链表,后一链表翻转,之后再合并,时间复杂度O(n) /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} head原创 2022-03-28 20:19:43 · 1529 阅读 · 0 评论 -
剑指offer2专项突击版——16不含重复字符的最长子字符串javascript题解
双指针(或叫做长度改变的滑动窗口)+ 哈希表 根据左右指针的移动来找到最长子字符串 /** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { const lens=s.length; //若字符串为空字符串,则返回0 if(lens==0){ return 0; } const arr=new Array(256).fill原创 2022-02-19 16:12:00 · 486 阅读 · 0 评论