NiimiSora
NiimiSora
全部文章
分类
题解(7)
归档
标签
去牛客网
登录
/
注册
NiimiSora的博客
全部文章
(共9篇)
题解 | #计算数组的小和#
题目分析 根据左神讲的smallSum先可以写出暴力方法: 数组 s = [1, 3, 5, 2, 4, 6] ,在 s[0] 的左边小于或等于 s[0] 的数的和为 0 ; 在 s[1] 的左边小于或等于 s[1] 的数的和为 1 ;在 s[2] 的左边小于或等于 s[2] 的数的和为 1+3=...
Java
归并排序
2022-08-30
2
415
题解 | #数组中只出现一次的两个数字#
题目分析 根据异或性质: 假设要找的两个数为a, b;数组中所有数逐个异或,即x1 ^ x2 ^ y1 ^ y2 ^ …… ^ a ^ b, 最终成对的数根据归零率变成0,再根据恒等率剩下的一定是a ^ b 从a ^ b中可以获得某种信息:因为a != b所以a ^ b一定不为0,它其中某一位为1...
Java
数组
数学
2022-08-29
3
337
题解 | #判断一个链表是否为回文结构#找中点的同时反转
思路 双指针找中点,遍历同时反转前半部分 处理特殊情况 fast指针回到反转后的头指针的位置,与slow指针逐个比较 实现 import java.util.*; public class Solution { public boolean isPail (ListNode head)...
Java
双指针
2022-05-02
1
394
题解 | #单链表的排序#7行代码的优先级队列辅助
思路 简单思路,非最优。 链表每个结点值都扔到优先级队列里去。 新建结点的值为pq.poll() 想偷懒不想写排序算法,又不想调Arrays.sort(),才写出了这样的代码,就当练练PriorityQueue,纯属娱乐;-) 实现 import java.util.*; public cla...
Java
堆(优先队列)
2022-04-30
2
373
题解 | #链表相加(二)#
思路 类似大数相加,逐位相加带上进位即可。 reverse两个链表,方便后面从低位往高位逐位相加; 创建新结点,找个哨兵结点记录这个结点,初始化一个变量用来记录进位; 反转后的两个链表都不为空时,记录两个结点值以及进位值的和记为sum,新结点值为sum%10,进位为sum/10; 其中一个链表为空...
Java
链表
2022-04-30
2
443
题解 | # 删除链表的倒数第n个节点#
思路 同#链表中倒数最后k个结点#,使用快慢指针。 快指针比慢指针先n步,快慢指针同步前进,快指针碰到null时,慢指针就是待删除结点,比起上一题,需要再维护一个pre结点,记录slow指针前面的结点,最后逻辑删除slow结点,返回head。 实现 import java.util.*; publ...
Java
双指针
2022-04-29
2
404
题解 | #链表中倒数最后k个结点#
思路 快慢指针 快指针先移动k次,快慢指针同步移动(此时快慢指针之间相差k个结点),当快指针移动到null时,慢指针恰好移动到最后第k个结点。 特殊情况处理,fast没移动k次就为null时返回null 实现 import java.util.*; public class Solution { ...
Java
双指针
2022-04-28
1
422
题解 | #在行列都排好序的矩阵中找指定的数#
在行列都排好序的矩阵中找指定的数 时间O(M*N) 空间O(1) import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new ...
Java
2022-03-06
3
642
题解 | #合并两个排序的链表#
递归思路 同Leetcode 21 Merge Two Sorted Lists ,用递归实现: 简单地理一下思路: 从头结点开始考虑,比较两表头结点的值,值较小的list的头结点后面接merge好的链表(进入递归了); 若两链表有一个为空,返回非空链表,递归结束; 当前层不考虑下一层的细节,当前...
Java
递归
Java
Java
Java
Java
Java
Java
Java
2021-09-18
103
4367