自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 Failed to resolve:com.android.support:appcompat-v7错误处理

今天使用android studio第一次创建项目时出现这个BUGError:Failed to resolve: com.android.support:support-annotations:27.0.1Install Repository and sync projectOpen FileShow in Project Structure dialogError:Failed to resolve: com.android.support:appcompat-v7:27.0.1Instal

2020-05-26 15:56:29 355

原创 关于Android studio 异常Cannot launch AVD in emulator. Output: emulator: WARNING: Increasing RAM siz

今天第一次使用Android studio的时候出现了这个问题废话不多说直接说解决方法找到Android sdk所在的目录查找你SDk安装路径。打开sdk下的以下路径。Android\sdk\extras\intel\Hardware_Accelerated_Execution_Manager把该目录下的intelhaxm.exe安装一下。解决完事。...

2020-05-24 11:58:30 979

原创 今天会是有offer的一天么-condition实现生产者消费者模式

今天我们使用condition简单实现一下生产者消费者模式。废话不多说直接上代码。import java.util.PriorityQueue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class Main { private ReentrantLock lock=new ReentrantLock(); private Condi

2020-05-16 17:22:48 222

原创 leetcode-322.零钱兑换

题目给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1输入: coins = [2], amount = 3输出: -1代码非常经典的一道题目了,动态规划解决class Solution { public int coinChange(int[] coi

2020-05-14 22:02:04 196

原创 leetcode-406. 根据身高重建队列

题目假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]代码非常好理解,重点还是理解代码的思路class Solution { public int[]

2020-05-12 18:22:36 287

原创 leetcode-309. 最佳买卖股票时机含冷冻期

题目给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]代码class Solution { public int maxProf

2020-05-12 17:15:10 190

原创 leetcode-300.最长上升子序列

题目给定一个无序的整数数组,找到其中最长上升子序列的长度。示例输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。代码class Solution { public int lengthOfLIS(int[] nums) { if(nums.length<=1){return nums.length;} int[]num=new int[nums.length];

2020-05-12 16:20:34 178

原创 leetcode-236. 二叉树的最近公共祖先

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

2020-05-12 11:40:11 183

原创 leetcode-226. 翻转二叉树

题目翻转一棵二叉树。示例输入: 4 / \ 2 7 / \ / \ 1 3 6 9输出: 4 / \ 7 2 / \ / \ 9 6 3 1代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; *

2020-05-12 10:16:17 177

原创 leetcode-221.最大正方形

题目在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4方法有很多,这里只列举一种最容易理解的思路class Solution { public int maximalSquare(char[][] matrix) { if(matrix.length==0){return 0;} int[][]nums=new int[matrix.le

2020-05-12 10:07:16 214

原创 leetcode-215. 数组中的第K个最大元素

题目在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例输入: [3,2,1,5,6,4] 和 k = 2输出: 5输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4代码,千万别sort一下,然后从后往前找第k大的数,这样这道题目就没意义了class Solution { public int findKthLargest(int[] nums, int k) { //第一种方法,使用优先

2020-05-12 00:27:00 200

原创 leetcode-206. 反转链表

题目反转一个单链表。示例输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class So

2020-05-11 17:39:42 139

原创 leetcode-155. 最小栈

题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-

2020-05-11 16:48:49 154

原创 leetcode-152. 乘积最大子数组

题目给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。代码由于这道题目存在负数,所以我们同样需要考虑每次比较最小的情况class Solution { public int maxProduct(int[] nums) {

2020-05-11 16:11:24 183

原创 leetcode-148. 排序链表

题目在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例输入: 4->2->1->3输出: 1->2->3->4输入: -1->5->3->4->0输出: -1->0->3->4->5输出/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNod

2020-05-11 15:07:56 174

原创 leetcode-146. LRU缓存机制

题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。示例LRUCache ca

2020-05-11 14:16:17 188

原创 leetcode-打家劫舍系列

题目打家劫舍一你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。输入: [2,7,9,3,1]

2020-05-11 11:43:42 200

原创 leetcode-114. 二叉树展开为链表

题目(字节被问到过这道题)给定一个二叉树,原地将它展开为链表。示例输入: 1 / \ 2 5 / \ \ 3 4 6输出:代码class Solution { public void flatten(TreeNode root) { if(root==null){return;} while(root!=null){ if(root.left==null){

2020-05-11 10:34:24 223

原创 leetcode-128. 最长连续序列

题目给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。这道题目既然有时间复杂度要求,那么我们只能用空间去换时间代码class Solution { public int longestConsecutive(...

2020-05-06 11:36:51 146

原创 leetcode-124. 二叉树中的最大路径和

题目给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例输入: [1,2,3] 1 / \ 2 3输出: 6输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7输出: 42代码/...

2020-05-06 09:26:48 211

原创 leetcode-106. 从中序与后序遍历序列构造二叉树(要和通过前序和后续构建二叉树相对应)

题目从中序与后序遍历序列构造二叉树示例中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * ...

2020-05-05 23:39:31 198

原创 leetcode-105. 从前序与中序遍历序列构造二叉树(这题一定要理解)

这道题目一定要理解,经常会遇到根据一棵树的前序遍历与中序遍历构造二叉树。示例前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * Tree...

2020-05-05 22:58:33 260

原创 leetcode-102. 二叉树的层序遍历

很常规的一道题目了给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例二叉树:[3,9,20,null,null,15,7],代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left;...

2020-05-05 19:23:21 175

原创 leetcode-101. 对称二叉树

题目给定一个二叉树,检查它是否是镜像对称的。示例例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode...

2020-05-05 19:04:48 145

原创 leetcode-84. 柱状图中最大的矩形

题目这道题目算是比较难的了,需要好好解释一下给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。输出示例输入: [2,1,5,6,2,3]输出: 10代码一(非常好理解,但是时间复杂度非常大,不使用)class Solution { public static int largest...

2020-05-05 15:04:14 156

原创 leetcode-单词搜索

题目给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 tr...

2020-05-05 01:19:41 237

原创 leetcode-78. 子集

题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]代码class Solution { public List<List<Integer>> ...

2020-05-04 19:56:41 174

原创 leetcode-76. 最小覆盖子串

这道题目还是比较难的,UP看了解析后才明白给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例输入: S = “ADOBECODEBANC”, T = “ABC”输出: “BANC”如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样的子串,我们保证它是唯一的答案。不多说上代码,这道题目要好好解释一下class Sol...

2020-05-04 00:40:01 232

原创 leetcode-75. 颜色分类

题目这道题目还是比较有意思的给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。要求仅使用常数空间的一趟扫描算法示例输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]代码(...

2020-05-03 16:47:24 231

原创 leetcode-72 编辑距离

题目给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:1.插入一个字符2.删除一个字符3.替换一个字符示例输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose...

2020-05-03 15:26:10 206

原创 leetcode-62不同路径

题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向...

2020-05-03 00:08:56 256

原创 leetcode-56. 合并区间

题目给出一个区间的集合,请合并所有重叠的区间。示例输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。代码class So...

2020-05-02 18:38:21 339

原创 leetcode-55. 跳跃游戏

题目给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 ...

2020-05-02 17:44:42 325

原创 leetcode-49. 字母异位词分组

题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]class Solution { public List<List<St...

2020-05-02 16:26:49 315

原创 leetcode-46. 全排列

题目给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]代码class Solution { public List<List<Integer>> permute(int[] nums) { Li...

2020-05-02 15:03:48 305

原创 leetcode-42接雨水问题

题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6代码class Solution { public stat...

2020-05-02 00:03:30 323

原创 leetcode-39. 组合总和

题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。示例输入: candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]输入: candidates = [2,3,5], t...

2020-05-01 23:07:05 187

原创 leetcode-34. 在排序数组中查找元素的第一个和最后一个位置

题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]输入: nums = [5,7,7,8,8,10], target = 6...

2020-05-01 19:28:35 269

原创 今天会是有offer的一天么-java中volatile关键字的使用

写在前面volatile关键字在面试中也算是高频问题了,基本上涉及到并发都会被问到这个问题。今天来简单的总结一下。先说一下volatile关键字的作用一. 禁止指令重排何为禁止指令重排?用一个代码简单解释一下public class Singleton {//这里用volatile修饰的目的就是防止指令重排 private static volatile Singleton ...

2020-05-01 16:20:12 3525

原创 leetcode-33. 搜索旋转排序数组

题目(同样是有时间复杂度要求的)假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例输入: nums = [4,5,6,...

2020-05-01 12:25:19 265

空空如也

空空如也

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

TA关注的人

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