自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 volatile到底能用来中断线程吗

在中断线程的方法中,除了使用interrupt(),还能否使用别的方法。volatile可以实现变量的可见性,能否用来充当中断标志位? 一、在没有阻塞的时候,可以使用volatile 设计一个实现Runnable的类,在run方法中循环打印出从0到100000中100的倍数。在循环判断的条件中,判断volatile的变量来控制是否停止循环。 在主线程中通过修改其volatile变量,是可以实现使线...

2020-02-29 22:10:25 534 2

原创 课程表

现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习? 示例 1: 输入: 2, [[1,0]] 输出: true 解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。...

2020-02-28 22:05:30 276

原创 反转链表

反转一个单链表。 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 思路一:递归 链表的反转,用递归的思想。假设当前节点为A,链表为A+B,则只需要将A插在已经反转好的B后面即可实现A+B的反转。 自己写的代码,很糙: 时间复杂度:O(n^2),因为每次递归都会循环一次链表 空间复杂度:O(n),每次递归会创建三个ListNode实例 class Solution { ...

2020-02-28 16:09:32 94

原创 岛屿数量

给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出: 1 示例 2: 输入: 11000 11000 00100 00011 输出: 3 思路一:深度优先遍历 将二维网格看成一个无向图,然后相...

2020-02-28 13:27:55 149

原创 字节跳动二面凉经

收到了字节跳动的面试通知,我是非常慌的,毕竟刚开始学这些知识点才没几天。不过,就算死也要死得体面一点,我便英勇地上了战场。 一面 48min: 算法题: 给一棵二叉树,打印出它的边界节点和叶子节点。 这个还算是比较简单,因为我最近做的题基本都是二叉树的,所以先用递归的方式写了出来。然后面试官问能不能不用递归,我想到之前层次遍历时用到过队列,便用队列实现了。 其实在过程中我多次以为要写不出来了,没想...

2020-02-27 16:34:36 2053

原创 打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 思路一: 通过观察题目,分析其要求,可以很明确的知道,这是一个动态规划题目。 使用f(n)来表示从前n家中偷盗...

2020-02-26 21:55:50 141

原创 多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 思路一: 自己的思路,估计也是最容易想到而且效率最低的。就是通过一个HashMap来存储每个key出现的次数。不过通过编写这个,我了解了Map的遍历方式。也就是通过遍历Map中的Entry来获取key和value。 时间复杂度:...

2020-02-26 21:28:55 117

原创 快速排序

快速排序可以归结为“挖坑填坑法”。 首先选择一个基准值x(一般选择第一个值),然后用两个指针left指向左端,right指向右端。然后right向前移动,直到遇到nums[right]<x,便将此值赋值给nums[left],然后将left向后移动,遇到大于x的值便放到right的位置,再移动right……直到left==right,最后将x填到相遇处。 这样便完成了小于x的在x左边,大于x...

2020-02-26 13:53:09 112

原创 相交链表

编写一个程序,找到两个单链表相交的起始节点。 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。 思路一:暴力法 将A链中每个节点都和B中每个节点相比。 时间复杂度:O(mn) 空间复杂度:O(1) 思路二:使用哈希表 将A链中的节点都存到一个哈希表中,然后...

2020-02-25 17:36:30 95

原创 最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 思路一: 本题的关键在于在常数时间内检索到最小元素。所以要用空间换时间,思路一采用辅助栈的方式来做。 主栈存储数据,辅助栈的栈顶存储当前栈内的最小元素。 辅助...

2020-02-25 14:33:52 80

原创 乘积最大子序列

给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 思路: 即使是我这种动态规划菜鸡也能一眼看出这是一道动态规划题目。 所以用到dp[i] = max(dp[i],dp[i-1]*nums[i])。不过不同的是这个题中的数可能是负数,所以,最大的很有可能变最小的,最小的也有可能变最大的。所以需要两个dp,分别是dp_max[]和dp_min[]。当是负数...

2020-02-25 12:30:10 178

原创 排序链表

在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 思路一:(递归) 本题的难点在于时间和空间复杂度的控制。时间复杂度为O(nlogn)可以使用归并排序(即先递归拆开数组,然后再合并起来)。 对数组做归并排序的空间复杂度为 O(nlogn),分别由新开辟数组O(n)和递归函数调用O(logn)组成,而根据链表特性: 数组额外空间:链表可以通过修改引用来更改节点顺序,无...

2020-02-25 10:29:06 112

原创 LRU 缓存机制

运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的...

2020-02-24 21:41:16 116

原创 环形链表 II

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 ...

2020-02-24 15:26:11 70

原创 环形链表I

给定一个链表,判断链表中是否有环。 思路一: 通过一个哈希表,在向后遍历时每遍历一个就加进去,然后判断这个节点之前是否添加过。如果从头到尾都没有则不是环形,有的话就是。 时间复杂度:O(n),对于含有 n个元素的链表,我们访问每个元素最多一次。添加一个结点到哈希表中只需要花费 O(1)的时间。 空间复杂度:O(n),空间取决于添加到哈希表中的元素数目,最多可以添加 n 个元素。 /** ...

2020-02-24 12:03:53 196

原创 LeetCode探索--递归(递归原理)

在这张探索卡片中,我们回答了以下几个问题: 什么是递归?它是如何工作的? 如何递归地解决问题? 如何分析递归算法的时间和空间复杂度? 如何更好地运用递归? 一、 递归原理 递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用 你可能想知道如何实现调用自身的函数。诀窍在于,每当递归函数调用自身时,它都会将给定的问题拆解为子问题。递归调用继续进行,直到到子问题无需进一步递归就可...

2020-02-24 10:39:57 250

空空如也

空空如也

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

TA关注的人

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