Leetcode刷题集
刷题集
outlier--
最后我才知道,原来让我失去理智的东西叫病毒
展开
-
优先队列+滑动窗口 解决滑动窗口最大值问题
给定一个数组nums 和滑动窗口的大小k,请找出所有滑动窗口里的最大值。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。滑动窗口的位置 最大值。输出:[3,3,5,5,6,7]原创 2022-10-13 22:29:23 · 237 阅读 · 0 评论 -
136.只出现一次的数字(使用Hashset)
遍历数组将数组存入Hashset添加过程中如果存在remove()移除最后取出hashset中的那一个元素返回class Solution { public int singleNumber(int[] nums) { int a=0; HashSet<Integer> set=new HashSet(); for(int i=0;i<nums.length;i++){ if(!set.add(n原创 2022-01-03 17:06:44 · 415 阅读 · 0 评论 -
24.两两交换链表中的结点
class Solution { public ListNode swapPairs(ListNode head) { ListNode dummy = new ListNode(); dummy.next = head; ListNode tmp = dummy; while (tmp.next != null && tmp.next.next != null) {//第一个和第二个结点保存下来 下次循环往后移动两.原创 2022-01-03 16:28:15 · 143 阅读 · 0 评论 -
1047.删除字符串中的相邻重复项
先将字符串转为字符数组 第一个元素先进栈循环这个字符数组与栈中元素比较如果相等则将栈中元素出栈不相等则入栈循环完栈中元素出栈得到删除后的逆序字符串最后循环得到删除后的正序字符串并且返回class Solution { public String removeDuplicates(String s) { char[] a=s.toCharArray(); Deque<Character> stack=new LinkedList()原创 2021-12-31 16:33:02 · 488 阅读 · 0 评论 -
面试02.01移除重复结点
hashset判断val是否可以加入可以加入则加入并且指针后移不能加说明是重复元素循环删除重复元素即可class Solution { public ListNode removeDuplicateNodes(ListNode head) { ListNode dummy = new ListNode(-1); dummy.next = head; ListNode tmp = dummy; HashSet<In原创 2021-12-31 15:58:48 · 185 阅读 · 0 评论 -
剑指offer18.删除链表结点(添加dummy,next域结点指向head)
class Solution { public ListNode deleteNode(ListNode head, int val) { ListNode dummy = new ListNode(-1); dummy.next=head; ListNode tmp=dummy; while(tmp.next.val!=val){ tmp=tmp.next; } tmp.nex.原创 2021-12-31 10:56:54 · 323 阅读 · 0 评论 -
19.删除链表的倒数第N个结点
一个获取长度的方法一个dumy结点指向传入head结点tmp为dummy头指针说明:传入head头结点具有数据域dummy头结点只存有next域/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; }原创 2021-12-30 11:07:42 · 82 阅读 · 0 评论 -
剑指 Offer 24. 反转链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) { ListNode newlist=null; .原创 2021-12-29 18:46:33 · 160 阅读 · 0 评论 -
剑指offer 06.逆向打印链表
一个获取链表的长度的方法初始化数组长度反转方法中进行逆向循环赋值/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution{ public int[] reversePrint(ListNode head)..原创 2021-12-29 18:43:59 · 2619 阅读 · 0 评论 -
Leetcode232.栈实现队列
栈stack1维护队列的offer操作栈stack2维护队列的poll操作class MyQueue { LinkedList<Integer> stack1=new LinkedList(); LinkedList<Integer> stack2=new LinkedList(); public MyQueue() { } public void push(int x) { stack1.push(x);..原创 2021-12-28 17:24:17 · 147 阅读 · 0 评论