算法
冻书
问题越诡异,错误可能越低级~
展开
-
回文链表
昨天练习了 验证回文字符串 ,回文的定义已经在该篇中定义过了,今天练习 回文链表。 题目描述 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 思路 昨天练习 验证回文字符串 使用了镜像对称思维,其思想是建立在 长度已知 并能使用 双指针 基础上。 但对于链表来说,其 长度 是不可知的,并且凭虚生成的指针是不能指向.原创 2021-03-19 15:18:41 · 577 阅读 · 0 评论 -
面试又碰到 LRU ,你能用 JS 实现吗?
在您的 vscode 安装 leetcode 插件的前提下,以下代码可以直接复制到 vscode 创建的文件中,直接运行哦! 算法 LRU 缓存机制可以通过哈希表辅以双向链表实现,我们用一个哈希表和一个双向链表维护所有在缓存中的键值对。 双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的。 哈希表即为普通的哈希映射(HashMap),通过缓存数据的键映射到其在双向链表中的位置。 这样以来,我们首先使用哈希表进行定位,找出缓存项在双向链表中的位置,随后.原创 2021-03-16 15:19:58 · 156 阅读 · 0 评论 -
大数字符串反转
这是leet上“整数反转”的变形题原创 2021-02-01 09:33:25 · 266 阅读 · 0 评论 -
暴力移除:拼写单词(Java,ArrayList)
给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。 假如你可以用chars中的『字母』(字符)拼写出 words中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。 注意:每次拼写时,chars 中的每个字母都只能用一次。 返回词汇表words中你掌握的所有单词的 长度之和。 示例 1: 输入:words = ["cat","...原创 2020-03-17 11:55:11 · 139 阅读 · 0 评论 -
字符串压缩(递归回调,内存消耗(比较耗时)最少的方法(内存击败100%))
本题采用递归回调整合新字符串方式处理 首先要注意一点:若“压缩”后的字符串没有变短,则返回原先的字符串。 这句话可以直接理解成当新生成字符串<=2或着新生成字符串>=原始字符串,直接输出原始字符串即可 class Solution { public int count = 1, index = 0; public String newStr = ""; ...原创 2020-03-16 11:04:50 · 309 阅读 · 0 评论 -
最新:2020.3 字符串的最大公因子
本题出自leetcode官网题库(附带题目链接),主要记录一下本人做题的心得体会原创 2020-03-13 10:56:23 · 119 阅读 · 0 评论 -
字符串中最长首尾相同的子字符串
今天本来是要练习“给定一个字符串s,找到s中最长的回文子串”这个算法题的,但一开始理解错了意思,没有真正了解到“回文子串”的定义,写了一道“字符串中最长首尾相同的子字符串”的代码。由于这个解答使用了新的思路:Map集合key唯一,同key的值(索引)互减求最大解得索引,具体代码如下: public static void main(String[] args) { Str...原创 2019-09-11 16:57:35 · 1522 阅读 · 0 评论