随笔分类 - leetcode——《剑指offer》
leetcode上《剑指offer》系列的题解
摘要:本题 题目链接 题目描述 我的题解 方法:【转自leetcode大佬】 思路分析 代码如下 Stack<Integer> a,b; // a是主栈,b是辅助栈 /** initialize your data structure here. */ public MinStack() { a = ne
阅读全文
摘要:本题 题目链接 题目描述 我的题解 !!!记住:一般而言,对于有序数组可以通过 双指针法 达到 O(n + m) 的时间复杂度。 (要开辟新空间的方法就不说了) 方法:双指针(从后往前) 思路分析 不开辟新空间,直接在 nums1 数组上操作。 一般而言我们会想到从前往后分别遍历 nums1 和 n
阅读全文
摘要:本题 题目链接 题目描述 我的题解 方法一: 思路分析 慢指针cur记录当前可以被覆盖的位置,快指针i从头到尾遍历数组: 当nums[i]!=0的时候,用i位置的元素覆盖cur位置的元素,然后i++,cur++。 若nums[i]=0,只有i++. 并不会造成值的丢失: 第一次循环的时候,若nums
阅读全文
摘要:leetcode、剑指offer、不用加减乘除做加法
阅读全文
摘要:本题 题目链接 题目描述 我的题解 二分法 思路分析 排序数组中的搜索问题,首先想到二分法 当nums[center] > center 时,缺少的数在左区间 当nums[center] = center 时,缺少的数在右区间 代码如下 public int missingNumber(int[]
阅读全文
摘要:本题 题目链接 题目描述 我的题解 方法一:使用库函数 s.substring() 代码如下 public String reverseLeftWords(String s, int n) { return s.substring(n, s.length()) + s.substring(0, n)
阅读全文
摘要:本题 题目链接 题目描述 我的题解 方法一:库函数split() 要注意str.split()函数: 字符串str前有 n 个空格时,分割出来的字符串列表中会多出 n 个空字符串; 字符串str某两个字符串中有 n 个空格,分割出的字符串列表会多 n-1 个空字符串。 字符串str最后有空格,分割出
阅读全文
摘要:本题 题目链接 题目描述 我的题解 方法三双100%, 方法一 适合范围广 方法一:双指针(也叫 滑动窗口) 思路分析 用两个指针i和表示当前枚举到的以i为起点,j为终点的区间,sum表示[i,j]的区间和: 当sum < tiarget,j指针向前移动,扩大区间,增大区间和。即:j++,sum+=
阅读全文
摘要:本题 题目链接 题目描述 我的题解 双指针 思路分析 因为该数组是递增数组,所以我们可以用双指针法。 声明指针left 和 right分别指向数组的头(数组下标为0)和尾(数组下标为length-1) 循环搜索:当两指针相遇时,结束循环 计算nums[left]和nums[right]的和 s 若s
阅读全文
摘要:leetcode、剑指 Offer 、第一个只出现一次的字符、java
阅读全文
摘要:leetcode、剑指 Offer 52. 两个链表的第一个公共节点
阅读全文