随笔分类 - algorithm
js在控制台获取所有域名并去重
摘要:// 获取所有的网络请求条目 const requests = performance.getEntriesByType("resource"); // 创建一个Set来存储唯一的域名 const uniqueDomains = new Set(); // 遍历所有请求,提取域名并添加到Set中 r
阅读全文
循环控制:链表和数组
摘要:循环是常用的流程环节。 1 //链表控制 2 //链表控制的优点,是通过指针来定位,那么循环的过程中,即是可变的,实时性很强。 3 var tmp *datastruct.ListNode 4 tmp = &datastruct.ListNode{Val: -1, Next: nil} 5 6 i
阅读全文
快慢指针-小记
摘要:快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。最后,慢指针就是中位数。 这个理论,是建立在中位数 = n / 2的基础上。 同时,适用于: 单向链表查找。 这个理论,需要一个简易的规律总结即可自证。 [1, 2, 3] lo
阅读全文
归并排序-小记
摘要:归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 类比题目: 三数求和。
阅读全文
差分概念
摘要:差分数组对应的概念是前缀和数组,对于数组 [1,2,2,4][1,2,2,4],其差分数组为 [1,1,0,2],差分数组的第 i 个数即为原数组的第 i-1 个元素和第 i 个元素的差值,也就是说我们对差分数组求前缀和即可得到原数组。 差分数组的性质是,当我们希望对原数组的某一个区间 [l,r]
阅读全文
找出不含重复字符最长
摘要:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其
阅读全文
链表两数之和
摘要:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6
阅读全文
小括号闭合检验算法
摘要:<?php $arrParams = getopt("c:"); $arrCheck = checkParams($arrParams); if (false $arrCheck["flag"]) { echoMsg($arrCheck); exit; } $strClose = $arrParam
阅读全文
简单算法系列:快速算法/冒泡算法两则
摘要:工作较忙,没办法抽出时间专心攻克《Go语言编程》,随着了解的更多,越发体会出这本书中小例子的精巧。 掌握这些小例子,就可以完成Go基础的全面掌握 最近抽出时间专心敲这些例子。但是发现一些问题,在设计上,许大大的算法可能更难让我理解一点。特对关于二章中结尾例子中算法,写出自己的算法,较之,我自己写的,
阅读全文