Loading

随笔分类 -  算法

该文被密码保护。
posted @ 2022-04-23 17:30 锦瑟,无端 阅读(3) 评论(0) 推荐(0)
摘要:本文内容主要来自于 “carl 的代码随想录” 以及“洛谷网校 阮行止”在知乎上的回答。 KMP 算法是一种字符串匹配算法,可以在 O(n+m) 的时间复杂度内实现两个字符串的匹配。其思想是当出现字符串不匹配时,利用之前已经匹配的文本内容,利用这些信息避免从头再去匹配。 1. Brute-Force 阅读全文
posted @ 2022-04-17 16:41 锦瑟,无端 阅读(678) 评论(0) 推荐(0)
摘要:1. 比较版本号 nowcoder 题目链接 【题目描述】 牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等。现在给你2个版本号version1和version2,请你比较他们的大小。 版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订 阅读全文
posted @ 2022-04-12 20:16 锦瑟,无端 阅读(91) 评论(0) 推荐(0)
摘要:1. 数组理论基础 数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组下标都是从0开始的。 数组内存空间的地址是连续的。正是因为数组在内存空间的地址是连续的,所以删除或者增添元素的时候,需要移动其他元素的地址。 数组的元素是不能删的,只能覆盖。 C++中二维数组在地址空间上是连续的 阅读全文
posted @ 2022-04-11 20:02 锦瑟,无端 阅读(46) 评论(0) 推荐(0)
摘要:0.理论基础 数组在内存空间的地址是连续的 数组中的元素只能覆盖,不能删除 1.循环不变量 leetcode: 704.二分查找 【题目描述】 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target, 写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否 阅读全文
posted @ 2022-01-23 16:56 锦瑟,无端 阅读(80) 评论(0) 推荐(0)
摘要:题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 实现 队列特性:先进先出 栈特性:先进后出 用两个栈实现队列的先进 阅读全文
posted @ 2022-01-17 14:17 锦瑟,无端 阅读(49) 评论(0) 推荐(0)
摘要:题目描述 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] Output: [3,9,20,null, 阅读全文
posted @ 2022-01-17 09:28 锦瑟,无端 阅读(48) 评论(0) 推荐(0)
摘要:题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 ⇐ 链表长度 ⇐ 10000 栈 直接能想到的方法,将链表遍历一遍,遍历的同时将节点值压栈,最后依次出栈。 // C++ // 使用栈实现 阅读全文
posted @ 2022-01-05 14:32 锦瑟,无端 阅读(44) 评论(0) 推荐(0)
摘要:题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 ⇐ s 的长度 ⇐ 10000 方法一:从前往后,O(N^2) 从前往后遍历,遇到空格替换成 '%20',由于 阅读全文
posted @ 2022-01-03 19:33 锦瑟,无端 阅读(48) 评论(0) 推荐(0)
摘要:题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 阅读全文
posted @ 2022-01-02 20:12 锦瑟,无端 阅读(48) 评论(0) 推荐(0)
摘要:题目描述 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 阅读全文
posted @ 2021-12-29 13:56 锦瑟,无端 阅读(64) 评论(0) 推荐(0)
摘要:148.排序链表 题目描述 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 进阶: 你可以在 O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗? 方法一:自顶向下归并排序 算法思想: 找到链表的中点,以中点为分界,将链表拆分成两个子链表。 对两个子链表分 阅读全文
posted @ 2021-09-07 20:57 锦瑟,无端 阅读(108) 评论(0) 推荐(0)
摘要:146. LRU 缓存机制 题目描述 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 k 阅读全文
posted @ 2021-09-04 15:59 锦瑟,无端 阅读(119) 评论(0) 推荐(0)
摘要:142. 环形链表 II 题目描述 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并 阅读全文
posted @ 2021-09-03 14:44 锦瑟,无端 阅读(46) 评论(0) 推荐(0)
摘要:3.无重复字符的最长子串 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 阅读全文
posted @ 2021-08-29 23:12 锦瑟,无端 阅读(57) 评论(0) 推荐(0)
摘要:2.两数相加 题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例1: 输入:l1 = [2,4,3] 阅读全文
posted @ 2021-08-29 20:45 锦瑟,无端 阅读(65) 评论(0) 推荐(0)
摘要:1. 两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入 阅读全文
posted @ 2021-08-28 10:15 锦瑟,无端 阅读(66) 评论(0) 推荐(0)