自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 西山居开发三面凉经

一面手撕,链表删除所以值为指定元素的结点,基本题手撕,给定N个数,计算这N个数两两间二进制表示的不同位数,如4(0100),14(1110),2(0010),4与14的二进制差值为2,4与2为2,14与2为2,结果为6。每个数的范围为0~10^9。暴力就不写了。将每个数当作固定32位的二进制串,计算第i位0与1的次数,相乘得一个结果,遍历每一位即可得到结果。复杂度O(N)。项目介...

2019-04-12 18:31:27 1622

原创 微众银行实习一面(Java后台开发)

自我介绍GET和POST区别项目:用户登录注册安全问题、SQL注入,文件上传很大的时候如何处理,多线程用户注册如何处理juc包下有哪些熟悉的HashMap多线程下可能造成的问题,添加、删除时实现一个多线程安全的单向有序链表,add单个结点、与其他链表合并项目最大的难点及如何解决对实习的预期和规划...

2019-03-28 11:27:01 1188

原创 Java内存区域

程序计数器线程私有,可以看作当前线程所执行的字节码的行号指示器。字节码解释器工作时通过 改变这个计数器的值来选取吓一跳需要执行的字节码指令。因为每次线程切换后需要保存当前执行到的位置,所以每个线程都需要有一个程序计数器。若当前线程执行的是一个Java方法,则记录正在执行的虚拟机字节码指向的地址;若执行的是Native方法,则为空。此区域是唯一没有OOM情况的内存区域。Java虚拟机栈...

2019-03-27 08:51:06 132

原创 leetcode 136 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4使用额外空间创建一个Hash Set来保存数据,遍历数组,若num存在与set中,则删除该num...

2019-02-03 08:47:30 105

原创 leetcode 104. 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 求最大深度相当于求树的高度,有递归和迭代两种做法,递归的做法相比大家都直到怎么做...

2018-12-07 10:28:46 154

原创 leetcode 103. 二叉树的锯齿形层次遍历

给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]题意要求实现每遍历一层就反...

2018-12-06 22:18:58 111

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

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]将二叉树用队列bfs展开,用left记录当前层还有多少个节点需要记录...

2018-12-06 21:38:31 88

原创 leetcode 872. 叶子相似的树

请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 提示:给定的两颗树可能会...

2018-12-05 10:58:42 98

原创 leetcode 897. 递增顺序查找树

给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 :输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9输出:...

2018-12-04 09:47:03 235

原创 leetcode 101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解...

2018-12-03 10:30:30 95

原创 leetcode 58. 最后一个单词的长度

给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5首先判断特殊情况,如s为空时返回0;再令i指向最后一个不为空格的字符,从该字符开始往前计数,直到再次遇到空格或i等于0.class Solutio...

2018-12-02 12:30:23 97

原创 leetcode 937. 重新排列日志文件

你有一个日志数组 logs。每条日志都是以空格分隔的字串。对于每条日志,其第一个字为字母数字标识符。然后,要么:标识符后面的每个字将仅由小写字母组成,或; 标识符后面的每个字将仅由数字组成。我们将这两种日志分别称为字母日志和数字日志。保证每个日志在其标识符后面至少有一个字。将日志重新排序,使得所有字母日志都排在数字日志之前。字母日志按字母顺序排序,忽略标识符,标识符仅用于表示关系。...

2018-12-01 12:11:16 369

原创 leetcode 791. 自定义字符串排序

字符串S和 T 只包含小写字符。在S中,所有字符只会出现一次。S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。返回任意一种符合条件的字符串T。示例:输入:S = "cba"T = "abcd"输出: "cbad"解释: S中出现了字符 "a", "b", "c", 所以

2018-11-30 11:11:44 194

原创 leetcode 890. 查找和替换模式

你有一个单词列表 words 和一个模式  pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母。)返回 words 中与给定模式匹配的单词列表。你可...

2018-11-29 10:54:05 199

原创 leetcode 443. 压缩字符串

给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。 进阶:你能否仅使用O(1) 空间解决问题? 示例 1:输入:["a","a","b","b","c","c","c"]输出:返回6,输入数组

2018-11-28 12:05:39 154

原创 leetcode 151. 翻转字符串里的单词

给定一个字符串,逐个翻转字符串中的每个单词。示例:  输入: "the sky is blue",输出: "blue is sky the".说明:无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。进阶: 请选用C语言的用户尝试使用 O(1) 空间复杂度的原地...

2018-11-28 00:03:17 129

原创 剑指offer 变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。假设这只青蛙第一次跳了i级台阶,那么就剩下n-i级台阶可以跳,即第一次固定跳i级时,f(n)=f(n-i);当i取不同的值时,f(n)就有不同的结果,最终有:f(n) = f(n-1)+f(n-2)+f(n-3)+...+f(n-(n-1))+f(n-n) = f(0)...

2018-11-26 23:55:03 80

原创 leetcode 125. 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false注意读题,题目中说了只考虑字母和数字,对于别的字符如空格,特殊字符等都忽略不算。...

2018-11-26 12:08:27 149 1

原创 leetcode 944. 删除列以使之有序

给出由 N 个小写字母串组成的数组 A,所有小写字母串的长度都相同。现在,我们可以选择任何一组删除索引,对于每个字符串,我们将删除这些索引中的所有字符。举个例子,如果字符串为 "abcdef",且删除索引是 {0, 2, 3},那么删除之后的最终字符串为 "bef"。假设我们选择了一组删除索引 D,在执行删除操作之后,A 中剩余的每一列都是有序的。形式上,第 c 列为 [A[0][...

2018-11-26 10:50:18 123

原创 leetcode 11 盛最多水的容器

给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...

2018-11-25 10:53:10 87

原创 leetcode 941 有效的山脉数组

给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3 在 0 < i < A.length - 1 条件下,存在 i 使得: A[0] < A[1] < ... A[i-1] < A[i] A[i] > A[i+1] &g...

2018-11-24 15:58:44 281

原创 leetcode 900. RLE 迭代器

编写一个遍历游程编码序列的迭代器。迭代器由 RLEIterator(int[] A) 初始化,其中 A 是某个序列的游程编码。更具体地,对于所有偶数 i,A[i] 告诉我们在序列中重复非负整数值 A[i + 1] 的次数。迭代器支持一个函数:next(int n),它耗尽接下来的  n 个元素(n >= 1)并返回以这种方式耗去的最后一个元素。如果没有剩余的元素可供耗尽,则  nex...

2018-11-22 12:40:51 119

原创 leetcode 915 分割数组

给定一个数组 A,将其划分为两个不相交(没有公共元素)的连续子数组 left 和 right, 使得:left 中的每个元素都小于或等于 right 中的每个元素。 left 和 right 都是非空的。 left 要尽可能小。在完成这样的分组后返回 left 的长度。可以保证存在这样的划分方法。 示例 1:输入:[5,0,3,8,6]输出:3解释:left = [5,...

2018-11-21 12:39:43 367

原创 leetcode 856 括号的分数

给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。 AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。 (A) 得 2 * A 分,其中 A 是平衡括号字符串。 示例 1:输入: "()"输出: 1示例 2:输入: "(())"输出: 2示例 3:输入: "()()"输出: 2示例 4:输入: "(...

2018-11-20 12:16:00 151

原创 leetcode 18 四数之和

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

2018-11-19 12:10:48 87

原创 leetcode 16 最接近的三数之和

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).显然,时间复杂度为O(n^3)的算法就...

2018-11-18 12:04:27 91

原创 设计模式-简单工厂

假设有这么一道题,要用一门面向对象的语言实现一个计算器,用户输入两个数和运算符,返回相应的结果。大部分同学应该都会觉得很简单,十分钟不到就能写出来不错的代码。比如:import java.util.Scanner;public class main { public static void main(String args[]){ Scanner sc = new ...

2018-11-16 14:47:11 79

原创 leetcode 88 合并有序数组

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

2018-11-16 10:39:36 132

原创 leetcode 442 数组中重复的数据

给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]显然,若可以使用额外空间,利用set的特性,判断nums[i]是否存在set中,若存在则此数时重复的,记录下...

2018-11-15 10:44:44 316

原创 leetcode 289 生命游戏

根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; ...

2018-11-14 16:22:39 145

原创 使用IDEA进行JavaWeb初步开发

本地安装Tomcattomcat下载。选择zip格式的压缩包,下载完毕后解压即可。 配置环境变量。右键我的电脑->属性->高级系统设置->环境变量,在下方的系统变量中新建变量CATALINA_HOME,对应的变量值为tomcat解压后的位置的根目录。如图:                                                            ...

2018-10-21 17:16:29 278

空空如也

空空如也

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

TA关注的人

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