自定义博客皮肤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)
  • 收藏
  • 关注

原创 软件也要拼脸蛋——UI开发的点点滴滴(二)

1. 常见控件的使用方法1.1 TextViewTextView

2022-01-14 16:19:05 1984

原创 剑指 Offer 53 - I. 在排序数组中查找数字 I

剑指 Offer 53 - I. 在排序数组中查找数字 I统计一个数字在排序数组中出现的次数。示例1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0解题思路二分查找:因为输入时有序数组,优先想到在该数组中查找target,二分法显然为时间最优解。如果target大于1个,则剩余的必定在其他区间,同样可以使用二分查找法来计数。 public

2020-09-28 16:53:40 80

原创 剑指 Offer 30. 包含min函数的栈

剑指 Offer 30. 包含min函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.to

2020-09-25 09:45:14 82

原创 剑指 Offer 42. 连续子数组的最大和

剑指 Offer 42. 连续子数组的最大和输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解题思路动态规划我们可以发现,要想得到一个连续子数组的最大和,有以下递推式:help[i] = heap[i - 1]>0 ? heap[i-1]+nums[i] : s

2020-09-24 16:31:42 66

原创 2020-09-24

剑指 Offer 52. 两个链表的第一个公共节点输入两个链表,找出他们第一个公共结点:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4

2020-09-24 10:30:37 134

原创 剑指 Offer 57. 和为s的两个数字

剑指 Offer 57. 和为s的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]解题思路双指针法:设置两个指针分别为头指针head和尾指针tail,对其

2020-09-24 09:22:06 48

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

剑指 Offer 32 - II. 从上到下打印二叉树 II从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树:[3,9,20,null,null,15,7],返回其层次遍历结果:[[3],[9,20],[15,7]]解题思路广度优先遍历class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if (root

2020-09-23 20:52:03 47

原创 剑指 Offer 68 - II. 二叉树的最近公共祖先

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

2020-09-23 19:43:07 57

原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。解题思路暴力方法显然,我们可以通过遍历将元素中的每个元素进行判断,如果是奇数,我们插入辅助数组的前端,前指针自增;如果是偶数,我们插入辅助数组的后端,尾指针自增。class Solution {

2020-09-23 17:46:11 71

原创 面试题 03.06. 动物收容所

面试题 03.06. 动物收容所动物收容所。有家动物收容所只收容狗与猫,且严格遵守“先进先出”的原则。在收养该收容所的动物时,收养人只能收养所有动物中“最老”(由其进入收容所的时间长短而定)的动物,或者可以挑选猫或狗(同时必须收养此类动物中“最老”的)。换言之,收养人不能自由挑选想收养的对象。请创建适用于这个系统的数据结构,实现各种操作方法,比如enqueue、dequeueAny、dequeueDog和dequeueCat。允许使用Java内置的LinkedList数据结构。enqueue方法有

2020-09-23 11:43:54 195

原创 面试题 03.05. 栈排序

面试题 03.05. 栈排序栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。示例1:输入:[“SortedStack”, “push”, “push”, “peek”, “pop”, “peek”][[], [1], [2], [], [], []]输出:[null,null,null,1,null,2]

2020-09-23 10:33:37 105

原创 面试题 02.08. 环路检测

面试题 02.08. 环路检测给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。示例1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = 0输出:tail connects to node index 0

2020-09-22 09:52:55 49

原创 面试题02.07 链表相交

面试题02.07 链表相交给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释

2020-09-22 09:21:13 128

转载 设备管理

一、磁盘结构盘面:一个磁盘有多个盘面磁道:盘面上的圆形带状区域,一个盘面可以有多个磁道扇区: 磁道上的一个弧段,一个磁道可以有多个扇区,它是最小的物理存储单位。磁头:与盘面非常接近,能将盘面上的磁场转换为电信号,或者将电信号转换为磁信号制动手臂:用于在磁道间移动磁头。主轴:使整个盘面转动。二、磁盘调度算法读写一个磁盘块的时间的印象因素主要有:旋转时间寻道时间实际数据传输时间其中寻道时间最长,因此磁盘调度的主要目标是使磁盘的平均寻道时间最短。先来先服务(FCFS)按

2020-09-21 20:25:02 96

转载 内存管理

一、虚拟内存虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。为了更好的管理内存,操作系统将内存抽象成地址空间,每个程序拥有自己的地址空间,这个地址空间被分割成多块,每一块称为一页。这些页被映射到物理内存中,但不需要映射到连续的物理内存中,也不需要所有页都必须再物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。从上面的叙述可以看出,虚拟内存允许程序不用将地址空间每一页都映射到物理内存,也是就是说一个程序

2020-09-21 20:03:40 1872

转载 死锁

一、必要条件互斥:每个资源要么已经分配给了一个进程,要么就是可用的。占有和等待:已经得到某个资源的进程可以再请求新的资源。不可抢占:已经分配给一个进程的资源不能强制性的被抢占,只能被占有它的进程显式的释放。环路等待:有两个或以上的进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源。二、处理方法1.鸵鸟策略假装问题没有发生。因为解决死锁问题的代价很高,因此鸵鸟策略这样不采取任务措施的方案会获得更高的性能。2.死锁检测与恢复不试图阻止死锁,而是等到死锁发生时,采取

2020-09-21 17:20:23 222

空空如也

空空如也

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

TA关注的人

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