自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(208)
  • 收藏
  • 关注

原创 栈与队列篇:347. 前 K 个高频元素(难度 中等)

前 K 个高频元素(难度 中等)给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一.

2022-05-05 17:04:26 351

原创 栈与队列篇 239. 滑动窗口最大值 (难度 困难)

滑动窗口最大值 (难度 困难)给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 .

2022-05-04 11:34:14 188

原创 栈与队列篇 150. 逆波兰表达式求值 (难度 中等)

逆波兰表达式求值 (难度 中等)根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意 两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:tokens = [“2”,“1”,“+”,“3”,“*”]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens = [“.

2022-05-03 11:56:23 213

原创 栈和队列篇1047. 删除字符串中的所有相邻重复项 难度(简单)

删除字符串中的所有相邻重复项 难度(简单)给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca”输出:“ca”解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的.

2022-05-02 23:38:28 152

原创 栈与队列篇:20. 有效的括号 难度(简单)

有效的括号 难度(简单)给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true题解:算法流程.

2022-05-02 22:24:45 145

原创 栈与队列篇:225. 用队列实现栈 难度(简单)

用队列实现栈 难度(简单)请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是 push to back、peek/pop fro.

2022-05-02 11:19:33 78

原创 栈与队列篇 232. 用栈实现队列 (简单)

用栈实现队列 (简单)请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop fr.

2022-05-02 09:50:47 121

原创 (面试题) 102. 二叉树的层序遍历 难度 中等

二叉树的层序遍历 难度 中等给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]提示:树中节点数目在范围 [0, 2000] 内-1000 <= Node.val <= 1000# class TreeNo.

2022-04-18 23:25:00 89

原创 (面试题)35. 搜索插入位置 难度 简单

搜索插入位置 难度 简单给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4提示:1 <= nums.le.

2022-04-18 22:59:21 48

原创 字符串 KMP 28. 实现 strStr() 难度(简单)

实现 strStr() 难度(简单)给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = .

2022-04-12 23:28:39 253

原创 字符串篇 58 - II. 左旋转字符串 (难度 简单)

58 - II. 左旋转字符串 (难度 简单)字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length <=

2022-04-09 23:52:30 127

原创 字符串篇 151. 颠倒字符串中的单词 (中等)

颠倒字符串中的单词给你一个字符串 s ,颠倒字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。示例 1:输入:s = “the sky is blue”输出:“blue is sky the”示例 2:输入:s = " he.

2022-04-09 23:01:14 207

原创 字符串篇 541. 反转字符串

反转字符串 II(难度 简单)给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = “abcdefg”, k = 2输出:“bacdfeg”示例 2:输入:s = “abcd”, k = 2输出:“bacd”提示:1 <= s.length <= 10.

2022-04-02 23:17:02 383

原创 字符串篇 344. 反转字符串

反转字符串(难度 简单)编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]提示:1 <= s.length .

2022-04-01 23:54:32 717

原创 哈希篇 15. 三数之和

三数之和(难度 中等)给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <= .

2022-03-25 23:34:10 289

原创 哈希篇 383. 赎金信

赎金信(难度 简单)给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = “a”, magazine = “b”输出:false示例 2:输入:ransomNote = “aa”, magazine = “ab”输出:false示例 3:输.

2022-03-24 22:38:50 423

原创 哈希篇 454. 四数相加 II

四数相加 II(难度 中等)给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释:两个元组如下:(0.

2022-03-23 22:33:18 395

原创 哈希篇 1. 两数之和

两数之和(难度 简单)给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,.

2022-03-22 22:05:11 359

原创 哈希篇 202. 快乐数

快乐数(难度 简单)编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例 1:输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + .

2022-03-21 21:43:26 171

原创 哈希篇 349. 两个数组的交集

两个数组的交集(难度 简单)给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的提示:1 <= nums1.length, nums2.length <= 1000.

2022-03-20 23:00:37 446

原创 哈希篇 1002 查找公用字符

查找共用字符(难度 简单)给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。示例 1:输入:words = [“bella”,“label”,“roller”]输出:[“e”,“l”,“l”]示例 2:输入:words = [“cool”,“lock”,“cook”]输出:[“c”,“o”]提示:1 <= words.length <= 1001 <= wo.

2022-03-19 13:05:54 232

原创 哈希篇 242. 有效的字母异位词

有效的字母异位词(难度 简单)给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false提示:1 <= s.length, t.length <= 5 * 104s 和 t 仅包含小写字母进阶: 如果.

2022-03-17 18:33:54 258

原创 链表篇 142. 环形链表 II

环形链表 II(难度 中等)给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head = [3,2,0,-4], .

2022-03-14 23:20:48 136

原创 链表篇 02.07. 链表相交

02.07. 链表相交(难度 简单)给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:示例提示:listA 中节点数目为 mlistB 中节点数目为 n0 <= m, n <= 3 * 1041 <= Node.val <= 1050 <= skipA <= m0 <= skipB <= n如果 listA 和 list

2022-03-12 00:21:00 948

原创 链表篇 19. 删除链表的倒数第 N 个结点

删除链表的倒数第 N 个结点(难度 中等)给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= .

2022-03-10 21:17:25 199

原创 链表篇 24. 两两交换链表中的节点

两两交换链表中的节点(难度 中等)给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]题解如下图所示,这里s,a,b交换顺序可变,不止这一种。图片来自黎左乌(博主太懒了。。)# Definition for singly-linke.

2022-03-09 22:45:01 291

原创 链表篇 206. 反转链表

反转链表(难度 简单)给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000题解:直接将指针反转过来就行 为了防止反转后断开需要用临时指针# Definition for.

2022-03-08 22:48:24 254

原创 链表篇 707. 设计链表(双链表)

设计链表(难度 中等)设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插.

2022-03-08 22:04:14 98

原创 链表篇 设计链表(单链表实现)

设计链表 (难度 中等)设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。.

2022-03-06 23:29:09 214

原创 链表篇 203. 移除链表元素

移除链表元素 (难度 简单)给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]提示:列表中的节点数目在范围 [0, 104] 内1 <= N.

2022-03-05 23:51:07 293

原创 数组篇 59. 螺旋矩阵 II

数组篇 59. 螺旋矩阵 II(难度中等)给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:1 <= n <= 20这道题并不涉及到什么算法,就是考察对代码的掌控能力。这道题还是顺时针顺序填充:从左到右从上到下从右到左从下到上但是要注意别重复或者漏掉单元格

2022-03-02 22:50:31 328

原创 数组篇 长度最小的子数组(难度中等)

数组篇 209. 长度最小的子数组(难度中等)给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums

2022-03-01 21:32:35 189

原创 【无标题】

这篇文章不涉及任何技术内容,技术党可以跳过了。这篇文章对我自己研究生阶段来说算是起承上启下的作用,继2020年考研期间,为了准备复试,刷了很多东华大学的oj题。虽然出了成绩我感觉自己也不太可能进复试,但我还是乖乖刷题,以上博文都是记录刷过的复试题,不知道现在还考不考这些。虽然最终也并没有顺利考入东华,但本人秉着不到最后不放弃的原则,开启了痛苦的调剂生活,最后幸运的考上了,并且在小木虫上找到了一个好导师。之前有想都不一定进复试,刷题干嘛呢,但是后来证明当时的选择是对的,因为之前刷了不少题,所以编程能力还是有.

2022-03-01 19:27:57 141

原创 文本表示方法(word embedding)简单介绍

文本表示方法(word embedding):早期的传统的词表示法:独热(One-hot)表示、TF-IDF词的分布式表示法:如ELMo、Bert等。One-hot缺点:表示向量是稀疏表示且表示能力弱,N维度大小向量仅能表示N个单词,并且不能表示语义信息(联系上下文).TF-IDF:是一种用来计算每个单词重要性的关键词抽取的方法,通过计算词频和逆文本频率,在考虑效率的同时也得到了比较满意的效果。缺点:存在向量维度高、不能准确表示文本语义词的分布式表示:是一种维度大小相对较低的稠密向量

2021-02-28 16:58:26 669

原创 python中自定义类中的self的用处

Python初学者可以看这篇文章更容易理解:https://www.cnblogs.com/chownjy/p/8663024.htmlPython进阶者可以看这篇文章深入理解:https://www.cnblogs.com/jessonluo/p/4717140.html感谢两位原创作者

2020-11-15 09:53:10 144

原创 Pycharm试用期结束后还想继续使用的解决方法,亲证有效。

关注Python联盟,下载永久补丁激活补丁下载地址:添加链接描述提取码: rkuf根据使用前必看文档中内容步骤操作即可。感谢Python联盟

2020-11-14 10:26:53 5783 10

转载 2020-10-23

最近在看 python,在使用matplotlib进行绘图时,提示:ModuleNotFoundError: No module named ‘matplotlib.pyplot’; ‘matplotlib’ is not a package怎么回事呢? matplotlib这个安装包我也安装了呀。查资料说 有可能是多个python版本导致的,但是,我本地也只安装了3.6.1的版本。到底怎么回事呢?还是 歪果仁的答案能解决问题:就是文件名称命名问题,我将这个文件名命名为matplotlib.py如

2020-10-23 19:50:24 52

原创 进阶95 回文或镜面回文

95 回文或镜面回文作者: Turbo时间限制: 1S章节: 字符串问题描述 :给出字符串,判断其是否是回文或镜面回文。给定一个由数字或字母组成的字符串,如果该字符串正读、反读都一样,则该字符串被称作回文字符串。例如,"ABCDEDCBA"就是回文字符串。给定一个由数字或字母组成的字符串,将字符串中每个字符转换为对应的镜面字符(有镜面字符)或保持不变(无对应镜面字符),如果转换后的字符串...

2020-04-24 00:18:09 226

原创 进阶93 隐藏口令

93 隐藏口令作者: 5.5.2时间限制: 1S章节: 字符串问题描述 :有时候程序员有很奇怪的方法来隐藏他们的口令。Billy"Hacker"Geits会选择一个字符串S(由L个小写字母组成,5<=L<=100,000),然后他把S顺时针绕成一个圈。如字符串cbadfa,绕成一个圈后,我们认为字符串首尾相连。每次取其中一个字母作为起始字母,并顺时针依次取字母而组成一个字符...

2020-04-24 00:17:20 358

原创 进阶92 表达式求值

92 表达式求值作者: 朱星垠 时间限制: 1S章节: 字符串问题描述 :以字符串形式输入仅有整数和加减(正负)号构成的表达式,输出该表达式的值。输入说明 :标准输入设备中有多组测试数据,每组输入数据由一行组成,输入仅有整数和加减(正负)号构成的表达式(但是表达式可以插入空格)。输出说明 :依次输出从标准输入设备中读入的每一组测试数据对应的结果,输出一行,输出该表达式的值。所有数据前...

2020-04-24 00:16:44 238

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除