我要成为算法king
算法回忆录
沈听澜დ
上上签
展开
-
day22:leetcode11
1原创 2022-06-20 22:13:18 · 67 阅读 · 0 评论 -
day21:leetcode349
算法原创 2022-06-09 00:42:39 · 70 阅读 · 0 评论 -
day20:leetcode9
/*9. 回文数 easy 给你一整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。*/class Solution9a { public boolean isPalindrome(int x) { Deque<Character> stack = new ArrayDeque&l.原创 2022-05-26 01:12:31 · 75 阅读 · 0 评论 -
day19:leetcode8
/*8.字符串转换整数(atoi)medium 请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32位有符号整数(类似 C/C++中的 atoi 函数)。 函数myAtoi(string s)的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 读入.原创 2022-05-26 01:11:25 · 74 阅读 · 0 评论 -
day18:leetcode108
/*108. 将有序数组转换为二叉搜索树 easy 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。*//** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode rig.原创 2022-05-20 18:43:48 · 86 阅读 · 0 评论 -
day17:sword24
/*剑指 Offer 24. 反转链表 easy 定义一个函数,输入一个链表的头节点,反转该le链表并输出反转后链表的头节点。*/import java.util.List;/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */// .原创 2022-05-19 19:58:55 · 66 阅读 · 0 评论 -
day16:leetcode102
/*102. 二叉树的层序遍历 medium 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)*//** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val.原创 2022-05-19 19:56:49 · 91 阅读 · 0 评论 -
day15:sword22
/*剑指 Offer 22. 链表中倒数第k个节点 easy 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯, 本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始, 它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。*//** * Definition for singly-linked list. * public class List.转载 2022-05-17 19:28:44 · 77 阅读 · 0 评论 -
day14:leetcode21
/*21. 合并两个有序链表 easy 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。*//** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * .原创 2022-05-17 18:42:59 · 55 阅读 · 0 评论 -
day13:leetcode7
/*7. 整数反转 medium 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。*/class Solution7 { public int reverse(int x) { int res = 0; while (x != 0) { .原创 2022-05-13 01:19:14 · 52 阅读 · 0 评论 -
day12:leetcode06
/* medium6. Z 字形变换将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z(v) 字形排列。 比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下: P A H N A P L S I I G Y I R */import java.util.ArrayList;import java.util.List;class Solution.原创 2022-05-12 00:56:46 · 62 阅读 · 0 评论 -
day11:sword59Ⅱ
/* medium请定义一个队列并实现函数 max_value 得到队列里的最大值, 要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value需要返回 -1*/import java.util.*;class MaxQueue { Queue<Integer> q; Deque<Integer> dq; publi.原创 2022-05-11 00:59:57 · 63 阅读 · 0 评论 -
day10:sword09
/*剑指 Offer 09. 用两个栈实现队列 easy 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , 分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )*/import java.util.ArrayDeque;import java.util.Deque;class CQueue { Deque<Integer> st.原创 2022-05-11 00:58:19 · 69 阅读 · 0 评论 -
day08:sword03
/*剑指 Offer 03. 数组中重复的数字 easy 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。*/import java.util.HashSet;import java.util.Set;class Solution3 { public int .原创 2022-05-11 00:56:23 · 59 阅读 · 0 评论 -
day07:leetcode27
/*27. 移除元素 easy 给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素, 并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。*/class Solution27 { public int removeElement(int[] nums, int val) { .原创 2022-05-11 00:53:12 · 68 阅读 · 0 评论 -
day06:leetcode05
/*5. 最长回文子串 mdeium 给你一个字符串 s,找到 s 中最长的回文子串。*/// 中心扩散import java.lang.management.ManagementFactory;class Solution5a { public String longestPalindrome(String s) { int left = 0; int right = 0; int maxlen = 1; .原创 2022-05-11 00:51:53 · 55 阅读 · 0 评论 -
day05:leetcode1047
/*1047. 删除字符串中的所有相邻重复项 easy 给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。*/// 字符串模拟栈class Solution1047b { public String removeDuplicates(String s) { StringBuilder.原创 2022-05-11 00:49:48 · 200 阅读 · 0 评论 -
day04:leetcode682
/*682. 棒球比赛 easy 比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops, 其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则: 整数 x - 表示本回合新获得分数 x "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。 "D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分.原创 2022-05-11 00:47:34 · 74 阅读 · 0 评论 -
day03:leetcode27
/* easy27. 移除元素 给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素, 并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。*/class Solution27 { public int removeElement(int[] nums, int val) { .原创 2022-05-11 00:45:59 · 82 阅读 · 0 评论 -
day02:leetcode03
/*3. 无重复字符的最长子串 medium 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。*/// 滑动窗口import java.util.HashMap;class Solution3 { public int lengthOfLongestSubstring(String s) { // k : 值 v:索引 HashMap<Character, Integer> m = new HashMa..原创 2022-05-11 00:44:15 · 57 阅读 · 0 评论 -
day1-leetcode01
/*1. 两数之和 easy 请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。*/import java.util.HashMap;class Solution1 { public int[] twoSum(int[] nums, int target) { HashMap<In.原创 2022-05-11 00:42:03 · 82 阅读 · 0 评论