上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 22 下一页
摘要: 题目链接 15. 三数之和 思路 可以借鉴 【双指针】LeetCode 167. 两数之和 II - 输入有序数组 的思路,将 nums[i] 作为 target,不断移动 j 和 k 来达到目标。 去重的方法:通过判断 nums[j] == nums[j + 1] 和 nums[k] == num 阅读全文
posted @ 2023-01-29 16:10 Frodo1124 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目链接 167. 两数之和 II - 输入有序数组 思路 本思路来自 一张图告诉你 O(n) 的双指针解法的本质原理(C++/Java) 下图是白色部分初始的搜索空间,即 A[0] + A[7] 假如 target > A[0] + A[7],此时 A[7]已经是搜索空间中最大的数了,所以应该让 阅读全文
posted @ 2023-01-28 10:06 Frodo1124 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 题目链接 647. 回文子串 思路 使用中心扩散法解决,在 【双指针】LeetCode 5. 最长回文子串 的代码上稍作修改即可。 代码 class Solution { public int countSubstrings(String s) { int result = 0; for(int i 阅读全文
posted @ 2023-01-27 21:47 Frodo1124 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题目链接 5. 最长回文子串 思路1:中心扩散法 遍历字符串 s,对于每个字符都以它为中心向两边扩散,测得最长回文子串。 注意:在扩散的过程中要分回文串长度奇偶进行扩散,因为长度为偶数的回文串中心是两个字母 时间复杂度:$O(n^2)$ 空间复杂度:$O(1)$ 代码1 class Solution 阅读全文
posted @ 2023-01-27 21:30 Frodo1124 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 题目链接 680. 验证回文串 II 思路 题目允许删除一个字符,那么当我们判断到一对字符不相等时,可以分别判断区间 $[left + 1, right]$ 和区间 $[left, right - 1]$ 是否能构成回文串,只要有一个能构成回文串,则合法。 代码 class Solution { p 阅读全文
posted @ 2023-01-27 19:13 Frodo1124 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 题目链接 125. 验证回文串 思路 简单双指针应用 代码 class Solution { public boolean isPalindrome(String s) { StringBuffer sgood = new StringBuffer(); int length = s.length( 阅读全文
posted @ 2023-01-27 18:49 Frodo1124 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题目链接 772. 基本计算器 III 实现一个基本的计算器来计算简单的表达式字符串。 表达式字符串只包含非负整数,算符 +、-、、/ ,左括号 ( 和右括号 ) 。整数除法需要 向下截断 。 你可以假定给定的表达式总是有效的。所有的中间结果的范围均满足 [-231, 231 - 1] 注意:你不能 阅读全文
posted @ 2023-01-25 10:04 Frodo1124 阅读(331) 评论(1) 推荐(0) 编辑
摘要: 题目链接 227. 基本计算器 II 思路 代码 class Solution { // 使用 map 维护一个运算符优先级 // 这里的优先级划分按照「数学」进行划分即可 Map<Character, Integer> map = new HashMap<Character, Integer>() 阅读全文
posted @ 2023-01-24 13:03 Frodo1124 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目链接 224. 基本计算器 思路 代码 class Solution { public int calculate(String s) { // 存放所有的数字 Deque<Integer> nums = new ArrayDeque<>(); // 为了防止第一个数为负数,先往 nums 加个 阅读全文
posted @ 2023-01-23 23:27 Frodo1124 阅读(38) 评论(3) 推荐(0) 编辑
摘要: 题目链接 281. 锯齿迭代器 给出两个一维的向量,请你实现一个迭代器,交替返回它们中间的元素。 示例: 输入: v1 = [1,2] v2 = [3,4,5,6] 输出: [1,3,2,4,5,6] 解析: 通过连续调用 next 函数直到 hasNext 函数返回 false, next 函数返 阅读全文
posted @ 2023-01-22 16:40 Frodo1124 阅读(60) 评论(2) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 22 下一页