
算法
文章平均质量分 87
玖柒_lin
我很懒,还没有添加简洁~
展开
-
数据结构与算法 Java
一、数据结构1. 数组2. 链表2.1 单链表2.2 双向链表2.3 约瑟夫环形链表3. 栈3.1 数组模拟栈3.2栈的应用(1)中缀表达式的计算(2)中缀转后缀的计算(3)前缀表达式4. 哈希表(散列表)5. 树5.1 二叉树5.2 顺序存储二叉树5.3 线索化二叉树5.4 树结构的实际应用(1)堆排序(2)赫夫曼树(3)二叉排序树(BST)(4)平衡二叉树(AVL树/二叉搜索树)6. 图6.1 图的深度优先遍历原创 2024-02-02 12:01:53 · 324 阅读 · 0 评论 -
【数组、字符串】算法例题
给你一个字符串s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:5最后一个单词是“World”,长度为5。示例 2:4最后一个单词是“moon”,长度为4。示例 3:6最后一个单词是长度为6的“joyboy”。s仅有英文字母和空格' '组成s中至少存在一个单词方法1:(0ms)right--;原创 2024-03-19 19:41:24 · 1064 阅读 · 0 评论 -
【双指针】算法例题
如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。因此 index1 = 1, index2 = 2。因此 index1 = 1, index2 = 2。因此 index1 = 1, index2 = 3。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。原创 2024-03-19 19:22:34 · 809 阅读 · 0 评论 -
【滑动窗口、矩阵】算法例题
下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。个格子的面板,每一个格子都可以看成是一个细胞。,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。因为无重复字符的最长子串是 "abc",所以其长度为 3。因为无重复字符的最长子串是 "wke",所以其长度为 3。因为无重复字符的最长子串是 "b",所以其长度为 1。旋转图像,这意味着你需要直接修改输入的二维矩阵。请注意,你的答案必须是。是该条件下的长度最小的子数组。的当前状态,返回下一个状态。原创 2024-03-19 19:21:48 · 1252 阅读 · 0 评论 -
【哈希表】算法例题
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。是由重新排列源单词的所有字母得到的一个新单词。中的每个非空单词之间存在着双向连接的对应规律。中每个字符出现的次数都相同,则称。,那么这两个字符串是同构的。整数,并返回它们的数组下标。,判断它们是否是同构的。原创 2024-03-19 19:20:49 · 1345 阅读 · 0 评论 -
【区间、栈】算法例题
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].-在x = 11处发射箭,击破气球[10,16]和[7,12]。--> 返回 -3.- 在x = 2处发射箭,击破气球[1,2]和[2,3]。- 在x = 4处射出箭,击破气球[3,4]和[4,5]。-在x = 6处射出箭,击破气球[2,8]和[1,6]。原创 2024-03-19 19:20:12 · 776 阅读 · 0 评论 -
【链表】算法例题
之后 start 和 end 共同向前移动,此时二者的距离为 n,当 start 到尾部时,end 的位置恰好为倒数第 n 个节点。因为要删除该节点,所以要移动到该节点的前一个才能删除,所以循环结束条件为 start.next!设预先指针 pre 的下一个节点指向 head,设前指针为 start,后指针为 end,二者都等于 pre。新链表是通过拼接给定的两个链表的所有节点组成的。的链表,表示两个非负的整数。删除原始链表中所有重复数字的节点,只留下不同的数字。,旋转链表,将链表每个节点向右移动。原创 2024-03-19 19:19:13 · 1038 阅读 · 0 评论 -
【二叉树】算法例题
从根到叶子节点路径 4->9->5 代表数字 495 从根到叶子节点路径 4->9->1 代表数字 491从根到叶子节点路径 4->0 代表数字 40 因此,数字总和 = 495 + 491 + 40 = 1026。的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。是指从根节点到最远叶子节点的最长路径上的节点数。(即逐层地,从左到右访问所有节点)。原创 2024-03-19 19:18:11 · 1335 阅读 · 0 评论 -
【图、图DFS、字典树】算法例题
十二、图89. 岛屿数量②90. 被围绕的区域②91. 克隆图②92. 除法求值②93. 课程表②94. 课程表II②十三、图的广度优先搜索95. 蛇梯棋②96. 最小基因变化②97. 单词接龙 ③十四、字典树98. 实现Trie(前缀树)②99. 添加与搜索单词 - 数据结构设计②100. 单词搜索 II ③原创 2024-03-19 19:16:26 · 109 阅读 · 0 评论 -
【回溯、分治、Kadane】算法例题
十五、回溯101. 电话号码的字母组合②102. 组合②103. 全排列②104. 组合总和②105. N皇后II ③106. 括号生成②107. 单词搜索②十六、分治108. 将有序数组转换为二叉搜索树 ①109. 排序链表②110. 建立四叉树②111. 合并K个升序链表 ③十七、Kadane算法112. 最大子数组和②113. 环形子数组的最大和②原创 2024-03-19 19:15:07 · 200 阅读 · 0 评论 -
【二分查找】算法例题
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。示例 1:[3,4]示例 2:[-1,-1]示例 3:[-1,-1]nums是一个非递减数组方法1:(0ms)}else {i--;j++;return res;return res;原创 2024-03-19 19:14:05 · 1086 阅读 · 0 评论 -
【堆、位运算、数学】算法例题
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为。,除了某个元素只出现一次以外,其余每个元素均出现两次。8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。数组所表示的非负整数,在该数的基础上加一。,以二进制字符串的形式返回它们的和。请注意,你需要找的是数组排序后的第。原创 2024-03-19 19:13:02 · 1070 阅读 · 0 评论 -
【动态规划】算法例题
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶方法1:(用递归会超时)原创 2024-03-19 19:03:45 · 1471 阅读 · 0 评论 -
力扣刷题记录
1 合并两个有序数组 88. 合并两个有序数组-优快云博客 简单 √ 2 移除元素 27. 移除元素-优快云博客 简单 √ 3 删除有序数组中的重复项 26. 删除有序数组中的重复项-优快云博客 简单 √ 4 删除有序数组中的重复项② 80. 删除有序数组中的重复项-优快云博客 中等 √ 5 多数元素 169. 多数元素-优快云博客 简单 √ 6 轮原创 2024-02-09 11:33:23 · 787 阅读 · 0 评论