2 DUT_Walnut

尚未进行身份认证

暂无相关简介

等级
TA的排名 22w+

Java多线程设计模式(中)

文章目录生产者消费者模式所有参与者Data参与者生产者参与者消费者参与者通道参与者InterruptedExceeption异常常用情况Thread.interrupt:中断方法Thread.interrupted方法:检查并清除中断状态读写锁模式模式结构适用性同时读取,提高系统性能适合读取操作繁重时适合读取比写入次数频繁时synchronized与lock对比每消息一线程模式工人模式控制承载量工...

2020-02-18 18:35:32

LeetCode#105从前序中序构建二叉树

题目描述根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7简单分析学数据结构时候做过类似的,当时是字符串构建,然后想着用...

2020-02-17 15:41:06

LeetCode#454四数相加II

题目描述给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A =...

2020-02-16 16:26:01

JAVA多线程设计模式(上)

文章目录临界区模式/以一个线程执行模式不变模式不变类不变模式的安全措施声明不变类为final声明不变类内字段为private适用性当实例产生后,状态不再变化时实例需要共享,而且访问很频繁时保护性暂挂模式/停等模式施加条件加以防卫不等待的情况、等待的情况阻止模式适用性不需要刻意去执行的时候不想等待警戒条件成立时警戒条件只有一次成立时表达balk结果的方式忽略balk的发生以返回值表达balk的发生以...

2020-02-15 18:10:15

JAVA多线程设计模式之多线程基础

文章目录启动方式利用Thread类的子类利用Runnable接口的实现类的实例共享互斥synchronized方法/同步方法synchronized阻挡/synchronized语句线程协调(线程必须获取欲调用实例的锁定)wait方法:把线程放入wait setnotify方法:从wait set拿出线程notifyAll方法:从wait set拿出所有线程启动方式利用Thread类的子类...

2020-02-14 18:52:41

LeetCode#148排序链表

题目描述在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5简单分析开始想用快排,然后发现结果不容乐观然后看了看题解,...

2020-02-05 21:39:40

LeetCode#215数组中第K个最大的元素

题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4简单分析第K大第K小想到堆,第K大构建最大堆,不断弹出栈顶,直到第k次即可,C++提供了...

2020-01-27 14:20:47

LeetCode#236二叉树的最近公共祖先

题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 示例 1:输入: ro...

2020-01-27 12:23:33

LeetCode#230二叉搜索树中第k小的元素

题目描述给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,null,nul...

2020-01-18 21:52:57

LeetCode#88合并两个有序数组

题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3num...

2020-01-18 21:40:37

LeetCode#292Nim游戏

题目描述你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块...

2020-01-18 21:27:33

LeetCode#344反转字符串

题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例...

2020-01-18 21:23:00

LeetCode#557反转字符串中的单词

题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。简单分析分词,然后每个词一倒序,只需要一个字符串存储当前倒序的结...

2020-01-18 20:55:55

数据结构整理

树二叉搜索树根节点值大于左孩子,小于右孩子AVL特殊的二叉搜索树每个节点的左右子树高度差小于等于一红黑树自平衡的BST,比维护AVL开销小。每个节点要么是黑色,要么是红色。根节点是黑色。每个叶子节点(NIL)是黑色。每个红色结点的两个子结点一定都是黑色。任意一结点到每个叶子结点的路径都包含数量相同的黑结点。应用场景 C++ STL Map和setJava Tre...

2020-01-18 14:59:07

LeetCode#15三数之和【思路参考题解】

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

2020-01-17 23:24:25

LeetCode#58最后一个单词的长度

题目描述给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。 示例:输入: "Hello World"输出: 5简单分析直接分词然后取最后一个即可。python提供的分词很...

2020-01-17 22:47:27

LeetCode#53最大子序和

题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。简单分析直接暴力求解,已知和最大则要加上去的数一定是正数,若不是则终止相加并判断当前和与历史最大和的大小,视情况更新历史最大和。代码c...

2020-01-17 22:21:08

LeetCode#35搜索插入位置

题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出:...

2020-01-17 21:04:19

LeetCode#28实现strStr()

题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", need...

2020-01-17 15:22:51

LeetCode#3无重复字符的最长字串

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

2020-01-16 22:59:26

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。