数据结构与算法
进击数据结构与算法
荏苒的苒
要一直努力,才能看起来毫不费力啊
展开
-
算法题:切换字母大小写
切换字母大小写,正则表达式 vs ASCII编码,分析时间复杂度原创 2022-07-20 18:13:16 · 95 阅读 · 0 评论 -
算法题:数字千分位格式化
数字千分位格式化,数组方式 vs 字符串方式,分析时间复杂度原创 2022-07-20 17:27:56 · 219 阅读 · 0 评论 -
算法题:获取1-10000之间所有的对称数(回文数)
获取1-10000之间所有的对称数(回文数),数组 vs 字符串 vs 生成翻转数,分析时间复杂度原创 2022-07-20 15:40:45 · 625 阅读 · 0 评论 -
算法题:请用JS实现快速排序,并说明时间复杂度
快速排序,splice vs slice,并分析时间复杂度原创 2022-07-20 14:30:58 · 230 阅读 · 0 评论 -
算法题:请找出字符串中连续最多的字符,以及次数
找出字符串中连续最多的字符以及次数,嵌套循环 vs 双指针,分析时间复杂度原创 2022-07-12 15:33:27 · 794 阅读 · 0 评论 -
算法题:将数组中的0移动到末尾
将数组中的0移动到末尾,嵌套循环 vs 双指针思路,分析时间复杂度原创 2022-07-12 11:45:34 · 600 阅读 · 0 评论 -
算法题:斐波那契数列
斐波那切数列,递归 vs 循环原创 2022-07-11 17:42:24 · 109 阅读 · 0 评论 -
算法题:求二叉搜索树的第 k 小值
二叉树及三种遍历方式原创 2022-07-11 14:13:46 · 238 阅读 · 0 评论 -
算法题:找出一个数组中和为n的两个数
找出一个数组中和为n的两个数原创 2022-07-08 14:31:00 · 426 阅读 · 0 评论 -
算法题:二分查找
二分查找,递归 vs 非递归原创 2022-07-08 11:31:34 · 68 阅读 · 0 评论 -
算法题:链表实现队列
链表实现队列原创 2022-07-06 16:00:21 · 90 阅读 · 0 评论 -
数据结构:链表,算法题:反转单向链表
反转单向链表原创 2022-07-06 11:17:58 · 118 阅读 · 0 评论 -
算法题:两个栈实现一个队列
该题的解题思路用到了数据结构栈和队列的概念,请查看 栈 和 队列/** * @description 两个栈实现一个队列 * @author lsr */export class Queue { private stack1: number[] = [] private stack2: number[] = [] /** * 入队 * @param num num */ push(num: number) { this.stack1.push(num)原创 2022-04-08 15:00:12 · 1337 阅读 · 0 评论 -
数据结构:队列
队列先进先出API:push、shift、lengthconst queue = []queue.push(100) // 入队queue.push(200)queue.push(300)const n = queue.shift(100) // 出队queue.length // 长度注:数组是有序结构,用shift实现队列很慢,暂且忽略这个问题,这里以实现功能为主后续解决方案:链表数组 vs 队列没有关系,数组可以实现队列队列是逻辑结构,理论模型数组是物理结构,可原创 2022-04-08 14:54:12 · 429 阅读 · 0 评论 -
算法题:判断一个字符串是否括号匹配
判断一个字符串是否括号匹配原创 2022-04-07 18:33:59 · 1266 阅读 · 0 评论 -
数据结构:栈
栈先进后出API:push、pop、lengthconst stack = []stack.push(100) // 入栈stack.push(200)stack.push(300)stack.pop(100) // 出栈stack.length // 长度栈 vs 数组没有任何关系,数组可以实现栈,别的方式同样可以实现栈栈是逻辑结构,理论模型,不受语言的限制数组物理结构,功能实现,受限于编程语言划重点栈逻辑结构 vs 物理结构......原创 2022-04-07 18:32:23 · 264 阅读 · 0 评论 -
算法题:将一个数组旋转 k 步都有哪些方法并分析复杂度
/** * @description Array rotate * @author lsr *//** * 将一个数组旋转 k 步 - pop unshift * @param arr arr * @param k k * @returns arr */export function rotate1(arr: number[], k: number): number[] { const length = arr.length if (!k || length === 0) re原创 2022-04-02 17:49:30 · 1189 阅读 · 0 评论 -
数据结构和算法
重点算法复杂度:空间、时间算法思维:贪心、二分、动态规划常见数据结构算法复杂度什么是复杂度程序执行时需要的计算量(cpu)和内存空间(和代码是否简洁无关)复杂度是数量级(O)(方便记忆、推广),不是具体的数字一般针对一个具体的算法,而非一个完善的系统时间复杂度空间复杂度时间复杂度 - 程序执行时需要的计算量(CPU):O(1):“可数的”,和输入量无关,计算一次—— 一次就够(数量级)O(logn):“对数”,输入量越大,计算量越趋于平缓——数据量的对数(数量级)O(n)原创 2022-04-01 16:53:46 · 662 阅读 · 0 评论