maomao666
maomao666
全部文章
分类
题解(21)
归档
标签
去牛客网
登录
/
注册
maomao666的博客
全部文章
(共8篇)
题解 | #调整数组顺序使奇数位于偶数前面(一)#
O(N), O(N) 只需要借助新数组,遍历两次,分别将奇数和偶数,添加即可 public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组 * @retur...
Java
数学
双指针
2022-05-14
1
237
题解 | #调整数组顺序使奇数位于偶数前面(二)#
双指针,O(N),O(1) i即right指向奇数,left有两种可能,可能left == right, 或者left指向偶数,此时swap(left, right)即可 public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的...
Java
双指针
2022-05-14
1
277
题解 | #二叉树的下一个结点#
O(N), O(1) 分类讨论,切记中序遍历,为左根右,因为需求给定结点的下一个结点,所以我们只需要讨论给定结点的右子树部分。同样扩展来说,要求给定的结点的上一个结点,只需要讨论给定结点的左子树部分 分析基于题中此图 (1), pNode.right == null, 例如g结点,我们应该是沿...
Java
二叉树
设计
数学
贪心
双指针
2022-04-26
1
195
题解 | #和为S的连续正数序列#
O(N) 双指针操作,因为是连续正数序列,所以可以有一个循环变量curSum来计算左右指针所夹的和(左闭右闭),并且一直迭代变化。 举例,1,2,3,4,5,6 sum = 9,left = 1, rigth = 3时 curSum = 6 < sum, 所以 right++, 更新之后,le...
Java
数学
双指针
设计
2022-04-26
1
212
题解 | #在二叉树中找到两个节点的最近公共祖先#
O(N), O(N) 不用库函数,分别使用双指针和快慢指针操作 新建一新方法,双指针实现字符数组翻转,然后利用快慢指针,对每一个单词进行翻转,最后进行整体的翻转 时间复杂度,(双指针操作)整体翻转 n / 2, 所有单词的翻转也近似于 n / 2 ,故时间复杂度 O(N) public class ...
Java
双指针
数学
字符串
数组
2022-04-22
1
189
题解 | #旋转数组的最小数字#
O(N), 双指针 由于数组升序,左右指针指向首尾 左右指针相加大于sum,则右指针左移,小于sum,左指针右移使得相加等于sum 剪枝操作表示此次循环left和right指向的数值和上次循环相等,没有计算的必要,直接continue,当然也可以不用,但是这种操作可以去重(很重要),此题不要求去重,...
Java
数组
双指针
数学
2022-03-29
1
213
题解 | #二维数组中的查找#
O(logN * M) 每一个数组用二分查找,然后结合得到 数组查找用二分,左右指针分别指向首末元素,且左闭右闭(循环不变量很重要) public class Solution { public boolean Find(int target, int [][] array) { boole...
Java
数组
二分查找
双指针
2022-03-25
1
308
题解 | #连续子数组的最大和(二)#
O(N), O(N),dp 建立一个3*N的dp数组, dp[i][0]表示以array[i]为末尾的连续数组的最大和 dp[i][1]表示与其对应的左边索引 dp[i][1]表示与其对应的右边索引,左闭右闭 先找到最大值,然后遍历dp,找到最大值中的最长数组。 import java.util.*...
Java
动态规划
贪心
双指针
2022-03-18
1
213