自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

热爱我的热爱

做自己热爱的事,源于对匠心的一种敬仰(https://github.com/snail-wj)

  • 博客(217)
  • 资源 (4)
  • 论坛 (1)
  • 收藏
  • 关注

原创 17.在单链表中删除指定值的节点

【题目】给定一个链表的头节点head和一个整数num,请实现函数将值为num的节点全部删除【代码1】时间复杂度O(n),空间复杂度O(n)class Solution { public ListNode deleteNode(ListNode head, int val) { ListNode cur = head; Stack<ListNode> stack = new Stack<>(); while(cur !=

2020-05-28 00:06:39 98

原创 16.删除无序单链表中值重复出现的节点

【题目】给定一个无序单链表的头节点head,删除其中值重复出现的节点。【代码1】时间复杂度O(n),空间复杂度O(n在这里插入代码片)class Solution { public ListNode deleteDuplicates(ListNode head) { if(head == null || head.next == null){ return head; } ListNode pre = head;

2020-05-27 23:42:22 151

原创 15.复制含有随机指针的链表

【题目】给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任意节点或空节点。要求返回这个链表的深拷贝【代码1】时间复制度O(n),空间复制度O(n)class Solution { public Node copyRandomList(Node head) { Node cur = head; Map<Node, Node> map = new HashMap<Node, Node>(); whil

2020-05-14 00:30:09 61

原创 14.两个单链表相加

【题目】给定两个用链表表示的整数,每个节点包含一个数位。例如:链表1为9-> 3 -> 7,链表2为6 -> 3,最后生成的结果为1 -> 0 -> 0 -> 0。【代码1】时间复杂度O(n),空间复杂度O(n) public ListNode addTwoNumbers(ListNode l1, ListNode l2) { Stack<Integer> stack1 = new Stack<>();

2020-05-12 01:06:58 143

原创 13.将单向链表按某值化分为左边小,中间相等,右边大的形式

【题目】给定一个单向链表的头节点head,节点的值类型是整形,在给定一个整数pivot。实现一个调整链表的函数,将链表调整为左部分都是值小于pivot的节点,中间部分都是值等于pivot的节点,右部分都是值大于pivot的节点。除这个要求外,对调整后的节点顺序没有更多的要求。【代码1】时间复杂度为O(n),空间复杂度为O(n) public Node listPartition(Node head, int pivot) { if (head == null) {

2020-05-09 02:23:28 85

原创 12.生成窗口最大值数组

【题目】给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。【代码】 public int[] maxSlidingWindow(int[] nums, int k) { if(nums == null || k < 1 || nums.length < k){ return new int[0]; ...

2020-05-07 00:07:54 71

原创 11.用一个栈实现另一个栈的排序

【题目】一个栈中的元素的类型为整形,现在想将该栈从顶到底按从小到大的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但是不能申请额外的数据结构,如何完成排序。【代码】 private void sortStackByStack(Stack<Integer> stack) { Stack<Integer> helper = new Stack...

2020-05-05 19:14:57 78

原创 10.如何仅用递归函数和栈操作逆序一个栈

题目 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现了栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构代码 private int getAndRemoveLastElement(Stack<Integer> stack) { int result = ...

2020-05-05 16:58:26 48

原创 09.用两个栈实现队列

题目 用两个栈实现一个队列,队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。 (若队列中没有元素,deleteHead返回-1)。代码class CQueue { private Stack<Integer> stackPush = new Stack<Integer...

2020-05-05 15:58:42 53

原创 08.设计一个有getMin功能的栈

1.题目 请设计一个栈,除了常规栈支持的pop与push函数以外, 还支持min函数,该函数返回栈元素中的最小值。执行push, pop,和min的时间复杂度必须为O(1)。2.代码class MinStack { private Stack<Integer> minStack = new Stack<Integer>(); privat...

2020-05-05 15:52:28 46

原创 07.判断一个链表是否为回文结构

【题目】 给定一个链表的头节点head,前判断该链表是否为回文结构 例如: 1 -> 2 -> 1,返回true 1 -> 2 -> 2 -> 1,返回true 1 -> 2 -> 3,返回false【代码1,空间复杂度n】 public boolean isPalindrome(ListNode head) { Li...

2020-04-25 17:06:03 74

原创 06.环形单链表的约瑟夫问题

【问题】 输入:一个环形单向链表的头节点head和报数的值m 返回 :最后生存下来的节点,且这个节点自己组成环形单链表,其他节点都删掉。【代码】 public ListNode josephusKill(ListNode head, int m) { if (head == null || head.next == head || m < 1) { ...

2020-04-24 01:05:50 84

原创 05.反转部分单向链表

[题目]反转从位置 m 到 n 的链表。请使用一趟扫描完成反转,说明1 ≤ m ≤ n ≤ 链表长度。输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL【代码】public ListNode reverseBetween(ListNode head, int...

2020-04-23 00:33:00 83

原创 04.反转单向链表和双向链表

【题目】实现反转单向链表的函数【代码】 public ListNode reverseList(ListNode head) { ListNode pre = null; ListNode next = null; while(head != null){ next = head.next; ...

2020-04-22 01:11:29 79

原创 03.删除链表的中间节点

【题目】 给定一个链表的头节点head,实现删除链表的中间节点的函数【代码】 private ListNode removeMidNode(ListNode node) { if (node == null || node.next == null) { return node; } ListNode pre =...

2020-04-22 00:16:39 47

原创 02.在单链表和双链表中删除倒数第K个节点

【题目】 分别实现两个函数,一个可以删除单链表中倒数第k个节点,另一个可以删除双链表中倒数第k个节点【代码】/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; }...

2020-04-20 23:36:58 40

原创 01.打印两个链表的公共部分

【题目】给定两个有序链表的头指针head1 和 head2,打印两个链表的公共部分【代码】 public void printCompareNode(Node n1, Node n2) { while (n1 != null && n2 != null) { if (n1.value < n2.value) { ...

2020-04-18 18:52:06 37

原创 07-01.判断二叉树是否为平衡二叉树

题目输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。代码class Solution { public boolean isBalanced(TreeNode root) { return pocess(root).isBalanced; } public class ...

2020-04-13 01:29:38 27

原创 06-03.统计完全二叉树的节点个数

题目给定一棵完全二叉树的头节点head,返回这棵树的节点个数.代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x;...

2020-04-12 16:58:54 82

原创 06-02.寻找元素最左出现的位置

1.题目对于一个有序数组arr,再给定一个整数num,请在arr中找到num这个数出现的最左边的位置代码 public int getLeftIndex(int[] array, int num) { int length = array.length; int left = 0; int right = length - 1; ...

2020-04-12 12:48:49 35

原创 06-01.寻找旋转排序数组中的最小值

题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例1:输入: [3,4,5,1,2]输出: 1示例2:输入: [4,5,6,7,0,1,2]输出: 0代码class Solution { publ...

2020-04-09 01:55:13 31

原创 05-01.K 个一组翻转链表

题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3...

2020-03-29 22:56:44 31

原创 04-04.滑动窗口最大值

题目给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。代码class Solution { public int[] maxSlidingWindow(int[] nums, int k) { Deque<Integer> deque = new Li...

2020-03-29 02:22:28 59

原创 04-03.栈的逆序

题目一个栈中的元素为整型,现在想将改栈从顶到低按从大到小的顺序排序,只能申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构,如何完成排序代码 public static void sortStack(Stack<Integer> stack) { Stack<Integer> help = new Stack<>();...

2020-03-23 13:59:08 36

原创 04-02.栈的逆序

题目实现一个栈的逆序,但是只能用递归函数和这个栈本身的操作来实现,而不能自己申请另外的数据结构代码public class ReverseStack { public int get(Stack<Integer> stack) { int result = stack.pop(); if (stack.isEmpty()) { ...

2020-03-23 11:33:33 55

原创 04-01.最小栈

题目设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。代码class MinStack { private Stack<Integer> dataStack = new St...

2020-03-23 01:25:54 27

原创 04.排序算法

时间复杂度为O(n^2)1.冒泡排序 public void sort(int[] array) { for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (arra...

2020-03-18 23:47:01 32

原创 03.序列化二叉树

题目请实现两个函数,分别用来序列化和反序列化二叉树。实现public class Codec { // Encodes a tree to a single string. public String serialize(TreeNode root) { if(root == null){ return "#!"; }...

2020-03-18 21:54:18 26

原创 02.从上到下打印二叉树 II

题目从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。代码class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if(root == null){ return new ArrayList<List&...

2020-03-17 01:39:58 69

原创 01.重上到下打印二叉树

题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。思路采用队列的方式即可,每弹出一个根节点,就将其左右子树入队列。代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode ri...

2020-03-11 00:59:37 27

原创 19. 删除链表的倒数第N个节点

题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:n是有效的解题/** * Definition for singly-linked list. * public class List...

2020-01-08 01:33:21 38

原创 15.三数之和

题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解题class S...

2019-12-31 01:38:19 43

原创 13. 罗马数字转整数

题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 ...

2019-12-29 00:30:45 38

原创 7.整数反转

题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例2:输入: -123输出: -321示例3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。解题:class Sol...

2019-12-28 01:33:08 31

原创 5.最长回文子串

题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例2:输入: "cbbd"输出: "bb"解题class Solution { public String longestPalindrome(String s) { if...

2019-12-27 01:31:14 33

原创 4.寻找两个有序数组的中位数

题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空示例1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 +...

2019-12-26 00:15:16 29

原创 3.无重复字符的最长子串

无重复字符的最长子串题目暴力法滑动窗口优化滑动窗口题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例3:输入: "pwwkew"输出...

2019-12-25 00:58:37 31

原创 2.两数相加

2.两数相加题目描述代码题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输...

2019-12-24 00:41:24 30

原创 jdk源码解析(一)---java.long.object

jdk源码解析(一)—java.long.object我们都知道java中的类都继承自Object类,我们今天就要来探讨下Object类的一些特性,首先我们来看下Object里面有哪些方法hashCode()equals()toString()notify()notifyAll()wait(long, int)wait()我们接下逐渐介绍上面的几个方法hashCode()...

2019-09-24 00:07:30 159

原创 redis连接

Redis连接Redis连接命令主要是用于连接redis服务ping描述:使用客户端向Redis服务器发送一个ping,如果服务器运作正常的话,会返回一个pong.通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值返回值:如果连接正常就返回一个pong,否者返回一个连接错误127.0.0.1:6379> pingPONG或者为127.0.0.1:6379>...

2019-06-11 23:44:19 232

Git命令自动补全

git命令自动补全。

2017-07-13

maven的配置(已经选择镜像是阿里云,速度快)

maven的配置(已经选择镜像是阿里云,速度快)

2016-12-14

MySQL-server-5.6.19-1.el6.x86_64.rpm

2016-12-07

MySQL-client-5.6.10-1.rhel5.x86_64.rpm

2016-12-07

跪求SDL窗口问题呀

发表于 2016-09-22 最后回复 2016-09-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除