随笔分类 -  数据结构

摘要:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统 的输 阅读全文
posted @ 2022-07-10 10:51 Vonos 阅读(77) 评论(0) 推荐(0)
摘要:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例: 输入:head = [] 输出:[] 迭代 创建头结点 dummy,令 dummy 阅读全文
posted @ 2022-07-09 17:28 Vonos 阅读(159) 评论(0) 推荐(0)
摘要:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例2: 输入:l1 = [], l2 = [0] 输出:[0] 方法1 迭代 设定一个哨兵节点 阅读全文
posted @ 2022-07-08 15:11 Vonos 阅读(97) 评论(0) 推荐(0)
摘要:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例2: 输入:head = [] 输出:[] 涉及到链表的操作,一定要在纸上把过程先画出来,再写程序。 从示例 1 的图片可以看出,实现反转实际上 阅读全文
posted @ 2022-07-07 10:46 Vonos 阅读(229) 评论(0) 推荐(0)
摘要:给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 need 阅读全文
posted @ 2022-07-05 19:10 Vonos 阅读(127) 评论(0) 推荐(0)
摘要:给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 示例: 输入:s = " 阅读全文
posted @ 2022-07-02 16:13 Vonos 阅读(282) 评论(0) 推荐(0)
摘要:给定一个字符串 s,统计并返回具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是成组连续的。 重复出现(不同位置)的子串也要统计它们出现的次数。 示例: 输入:s = "00110011" 输出:6 解释:6 个子串满足具有相同数量的连续 1 和 阅读全文
posted @ 2022-07-01 17:15 Vonos 阅读(41) 评论(0) 推荐(0)
摘要:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例: 输入:s = "aaa" 输出:6 解释:6 阅读全文
posted @ 2022-07-01 16:56 Vonos 阅读(110) 评论(0) 推荐(0)
摘要:给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。 示例1: 输入: 阅读全文
posted @ 2022-06-30 17:14 Vonos 阅读(105) 评论(0) 推荐(0)
摘要:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例: 输入: s = "anagram", t = "nagaram" 输出: true 进阶: 如果输入字符串包含 unicod 阅读全文
posted @ 2022-06-29 19:18 Vonos 阅读(91) 评论(0) 推荐(0)
摘要:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 示例1: 输入:nums = [1,1,1], k = 2 输出:2 示例2: 输入:nums = [1,2,3], k = 3 输出:2 由题意:① 数组元素可以重复使用;② 一次求和可以使用1 ~ 阅读全文
posted @ 2022-06-28 17:20 Vonos 阅读(54) 评论(0) 推荐(0)
摘要:给定一个二维矩阵 matrix,以下类型的多个请求: 计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。 实现 NumMatrix 类: NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化 阅读全文
posted @ 2022-06-27 17:46 Vonos 阅读(66) 评论(0) 推荐(0)
摘要:一维的前缀和,二维的积分图,都是把每个位置之前的一维线段或二维矩形预先存储,方便加速计算。 如果需要对前缀和或积分图的值做寻址,则要存在哈希表里 如果要对每个位置记录前缀和或积分图的值,则可以储存到一维或二维数组里,也常常伴随着动态规划 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 阅读全文
posted @ 2022-06-24 18:33 Vonos 阅读(95) 评论(0) 推荐(0)
摘要:给你一份航线列表 tickets ,其中 tickets[i] = [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。如果存在多种有效的行程,请你按字典排序返回最小的行 阅读全文
posted @ 2022-06-20 20:09 Vonos 阅读(156) 评论(0) 推荐(0)
摘要:给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例: 输入:points = [[1,1],[2,2],[3,3]] 输出:3 原理:两个点可以确定一条线;一条线可以由一个点和斜率而唯一确定。 对于每个点 阅读全文
posted @ 2022-06-02 22:29 Vonos 阅读(78) 评论(0) 推荐(0)
摘要:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4 阅读全文
posted @ 2022-05-30 15:53 Vonos 阅读(160) 评论(0) 推荐(0)
摘要:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例: 输入:nums = [2,7,11 阅读全文
posted @ 2022-05-29 22:24 Vonos 阅读(57) 评论(0) 推荐(0)
摘要:堆的实现方法,其中最核心的两个操作是上浮和下沉: 上浮:如果一个节点比父节点大,那么需要交换这个两个节点;交换后还可能比它新的父节点大,因此需要不断地进行比较和交换操作。 下沉:类似地,如果一个节点比父节小,也需要不断地向下进行比较和交换操作。如果一个节点有两个子节点,总是交换最大的子节点。 @ C 阅读全文
posted @ 2022-05-28 15:34 Vonos 阅读(92) 评论(0) 推荐(0)
摘要:给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1->3->4, 2->6 ] 将 阅读全文
posted @ 2022-05-28 15:32 Vonos 阅读(62) 评论(0) 推荐(0)
摘要:给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指在第 i 天之后,才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例: 输入: temperatures = [73,74,75,71,69,72,7 阅读全文
posted @ 2022-05-22 16:50 Vonos 阅读(135) 评论(0) 推荐(0)