- 博客(10)
- 收藏
- 关注
原创 两个链表是否相交节点
题目 给你两个单链表的头节点headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 两个链表相交节点https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNo.
2022-01-20 14:54:57 188 1
原创 删除链表的节点
题目 删除链表的节点https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/ 代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution
2022-01-19 16:11:13 293
原创 存在重复元素 II
题目 给你一个整数数组nums 和一个整数k ,判断数组中是否存在两个 不同的索引i和j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。 输入:nums = [1,2,3,1], k = 3 输出:true 输入:nums = [1,2,3,1,2,3], k = 2 输出:false 代码 public class Solution { public boolean co...
2022-01-19 14:57:09 309
原创 优先级队列实现以及应用
队列 队列是一种受限的线性表,对于大部分线性表而言,通常除了第一个和最后一个数据元素之外,其他数据元素都是首尾相接的。 先来的元素在队首,后来的只能在末尾,不允许插队。 只能在表的前端进行删除,后端进行插入。FIFO 优先级队列 优先级队列不再遵循FIFO的规则,而是按照自定义规则(优先级高低)将对应元素取出队列,比如取出优先级高的元素,或者淘汰优先级低的元素。 实现方式两种:入队的时候找准位置,或者出队的时候找准位置 Java中的PriorityBlockingQueue是基于Priority
2022-01-14 12:09:18 168
原创 至少是其他数字两倍的最大数
题目 给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。 解析 如果最大值是次大值的2倍,则肯定成立 记录最大值、次大值、下标 code public class Solution { public static int dominantIndex(int[] nums) { int biggest = 0, great
2022-01-13 14:44:04 98
原创 和为s 的连续正整数序列
题目 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列 题解 滑动窗口分析 连续正整数序列左边界i右边界j元素之和k 如果i>target 的一半得到的和肯定会大于target (省去部分遍历) 图示 代码 public class Solution01 { public static int[][] findContinuousSequence(int t
2022-01-13 11:51:11 84
原创 生成窗口最大数值数组
题目 有一个整数型数组arr 和一个大小为w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 例如:数组为[4,3,5,4,3,3,6,7] 数组长度为n 窗口大小w 则一共产生n-w+1 数组长度的数组。 解析 题解 package ZhanHeDuiLie; import java.util.Arrays; import java.util.LinkedList; public class MaxWindow { /** * * @par.
2022-01-12 13:17:56 209
原创 用一个栈实现另一个栈的排序
题目 一个栈中的类型为整形,现在想将该栈从顶到底按从大到小的顺序排序,只允许申请一个栈。除此之外可以申请新的变量,但不能申请额外的数据结构。 解析 要排序的栈定义为stack 辅助栈定义为help 边界限制,在stack 不为空做循环遍历 如果help 为空直接压入 如果不为空&&当前元素大于help 栈顶元素,弹出help 栈顶重新压入stack 然后重新将help 元素逐一出栈压入stack 题解 public class SortOfStack { ...
2022-01-11 15:56:23 176
原创 两个栈实现一个堆
题目 两个栈实现一个堆 解析 push 负责压入 pop 负责弹出 代码 public class TwoStackQueue { private Stack<Integer> pushStack; private Stack<Integer> popStack; private int count; public TwoStackQueue() { this.popStack = new Stack<>..
2022-01-11 15:54:07 115
原创 特殊栈(Java)
题目 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作 要求 pop pushgetMin时间复杂度都是O(1) pop pushgetMin时间复杂度都是O(1) 代码 import java.util.Stack; public class MyStack2 { private Stack<Integer> stackData; private Stack<Integer> stackMin; ...
2022-01-11 14:41:28 169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人