- 博客(102)
- 收藏
- 关注
原创 Java自己实现split()方法---按照给定的目标字符串分割原始字符串
方法一:先利用字符串的contains()方法判断原始字符串是否包含目标字符串,然后根据下标分割,将前面一段字符串加入list列表,然后删除给定目标字符串,继续while循环;最后再将剩余的最后一段字符串加入列表。public static String[] split(String array, String target) { List<String> list...
2019-09-25 21:14:32
1309
原创 微众银行秋招Java笔试第二题---询问次数
昨天下午做了微众银行的Java开发在线笔试题,编程题一共三道,记录一下解答思路第二题给的题目意思很绕,而且表达的意思也很复杂,感觉在做语文阅读理解,最后发现要表达的意思就是:一个数二进制有n位,那么确定这个数需要对每一位询问,也就是询问n次但是有n!种问法,输出n!比如3代表这个数是二进制表示是有3位,是一个介于0-7之间的数,需要分别确认第一位,第二位,第三位是不是0;根据确认的顺序不同,一...
2019-09-20 16:27:13
769
原创 微众银行秋招Java笔试第一题---阶乘结果的最后一个不为0的数
昨天下午做了微众银行的Java开发在线笔试题,编程题一共三道,记录一下解答思路第一题给的题目意思是给定一个数,求这个数阶乘结果的最后一个不为0的数为多少例如:10的阶乘为3628800那么阶乘结果最后一个不为0的数是8代码如下:import java.math.BigDecimal;import java.util.Scanner;/** * Created by wsw ...
2019-09-20 15:58:39
652
原创 对公司员工按年龄大小排序
面试的时候经常问到这种排序问题对公司的员工按照年龄大小进行排序,员工人数上万,可以使用常数时间的辅助空间,并且要求时间复杂度控制在O(n)显然,这种大数据的排序是不能用常见的排序算法的,时间复杂度是达不到O(n)的既然可以使用辅助空间,最容易想到的,有如下思路:先遍历员工年龄数组然后在辅助数组中在年龄对应的位置存储这个年龄出现的次数而且员工的年龄一定在一个范围内,比如20岁-80岁...
2019-09-16 23:07:09
1388
转载 Java中的try catch finally return
版权声明:本文为优快云博主「狼王神起」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/qq_36262896/article/details/79779953一般情况下,程序执行到try里面的内容一定会执行finally里面的内容。如果在try或者catch里面遇到return,那么函数在执行完ret...
2019-09-15 17:39:12
178
原创 2020奇安信秋招Java笔试第二题---公共祖先
今天晚上做了奇安信的Java开发在线笔试题,编程题一共两道,记录一下解答思路第二题给的题目意思是给定一棵平衡二叉树,满二叉树(无子节点用-1补齐),输入第一个数为二叉树的层数,输入一个数组为二叉树的节点值,再输入两个值表示给定的两个节点,要求找到这两个节点的最近公共祖先。import java.util.Scanner;/** * Created by wsw on 2019/9/9 2...
2019-09-10 10:34:49
1030
原创 2020奇安信秋招Java笔试第一题---线程树
今天晚上做了奇安信的Java开发在线笔试题,编程题一共两道,记录一下解答思路第一题给的题目意思是输入两个数组,第一个数组是子线程(子节点),第二个数组是父线程(父节点),删除一个线程会删除此线程的所有子线程,问给出一个要删除的线程,总共要删除掉几个线程?import java.util.LinkedList;import java.util.Queue;import java.util.S...
2019-09-09 23:39:54
1463
原创 MySQL数据库复习
关系型数据库事务的四大特性ACID事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:1、A (Atomicity) 原子性原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2...
2019-09-09 17:11:06
614
转载 排序算法Java实现
0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。...
2019-09-09 17:09:44
278
1
原创 数组中array==null和array.length==0的区别
//代码public class Test1 { public static void main(String[] args) { int[] a1 = new int[0]; int[] a2 = null; System.out.println(a1.length);//0 System.out.println(a2.l...
2019-09-04 19:35:28
1202
原创 python爬虫考试题记录——获取class="title"的内容
python考试的时候一道简单的爬虫题记录:给一个URL后,获取html内容并提取p标签中class="title"的文本内容import requestsfrom bs4 import BeautifulSouphtml = """<html><head><title>TheDormouse'sstory</title></hea...
2019-07-02 13:22:10
8983
原创 IDEA使用Maven创建项目时web.xml中的web-app报错
今天在IDEA中使用maven新建一个项目的时候,在web.xml中添加多个servlet标签,web-app出现报错(加一个并不报错):之后发现原因是:我在pom.xml中引入的servlet包的版本是4.0,与我默认的web.xml的版本不匹配:所以只需要在web.xml中在web-app的头部加入如下配置,保证servlet版本与web.xml版本相匹配:<web-app ...
2018-12-17 22:14:57
3639
1
原创 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.注意事项:您可以假定该字符串只包含小写字母。题目分析:寻找字符串中的第一个不重复的字符,首先想到的是遍历数组查找;之后可以想到用Map集合类存储查找。一、设置首尾指针查找,并设置一个值存储找到的第一...
2018-12-03 13:38:10
361
原创 压缩字符串
d给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。示例 1:输入:["a","a","b","b","c","c","c"]输出:返回6,输入数组的前6个字符应该是:["a","2&qu
2018-12-03 13:26:43
235
原创 翻转字符串里面的单词
给定一个字符串,逐个翻转字符串中的每个单词。示例:输入: "the sky is blue".输出: "blue is sky the".说明:无空格字符构成一个单词。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。题目分析:将字符串里面的单词翻转,并去除多余的空格;可以使用split()...
2018-12-03 13:13:34
334
原创 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false题目分析:首先字符串中多余的字符不在考虑的范围之类,而如果字符串是回文串,则可以设置双指针,...
2018-12-03 11:23:04
999
原创 删除排序数组中的重复项II
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后面的...
2018-12-03 11:14:38
325
原创 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 ...
2018-12-03 11:03:03
192
原创 合并区间
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。题目分析...
2018-12-03 10:46:12
366
原创 实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bb...
2018-11-26 09:37:14
1507
原创 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素...
2018-11-26 09:26:23
462
原创 数组中重复的数据
给定一个整数数组 a,其中1 ≤ a[i] ≤ n(n为数组长度), 其中有些元素出现两次,而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]题目分析:使用额外数组处理:使用新的数组存放数据定义的新数组存储元素的方式为:其下标是数组a中的元素,这样,只要元...
2018-11-23 21:39:34
1097
原创 按奇偶排序数组
给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i] <= 5000...
2018-11-23 21:23:09
1152
原创 数组元素平方处理
给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。举例:nums = {-1,1,1,1} 你应该返回1,因为这个数组所有数的平方取值都是1,只有一种取值nums = {-1,0,1,2,3} 你应该返回4,因为nums数组所有元素的平方值一共4种取值:1,0,4,9题目分析:求平方值,那...
2018-11-23 21:02:48
5521
原创 删除链表中的倒数第n个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题目分析:一、设快慢指针slow和fast,让fast先走n-1步,然后再同时后移...
2018-11-18 11:08:42
2118
原创 环形链表II——寻找环形链表的入口
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 null。说明:不允许修改给定的链表。进阶:你是否可以不用额外空间解决此题?题目分析:一、使用额外的空间处理即使用HashMap,遍历链表并将节点存储在HashMap中,如果出现重复的节点,则就是环形链表的入环节点,返回。代码实现:public static class ListNode{ int va...
2018-11-18 10:52:13
1038
1
原创 环形链表
给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?题目分析:链表中有环是指:1->2->3无环,1->2->3->4->3有环查资料,得知此题用快慢指针解决,即设定两个指针,快指针一次后移2位,慢指针一次后移1位,如若有环,快指针一定会追上慢指针。代码实现:public static class ListNode{ i...
2018-11-17 21:50:11
230
原创 移除链表元素
删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5题目分析:想到给定的值在链表中可能存在3个地方,两端和中间,所以分三种情况处理。代码实现:public static class ListNode{ int val;...
2018-11-17 21:39:24
193
原创 回文链表
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?题目分析:很容易想到将链表折半分开,反转后半部分,对应比较值。代码实现:public static class ListNode { int ...
2018-11-17 21:30:37
252
原创 反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?题目分析:将一个单链表反转,令前一个节点是后一个节点的next即可代码实现:public static class ListNode { ...
2018-11-17 21:21:15
222
原创 合并两个有序的链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题目分析:要将两个有序的链表连接起来,可以设置两个指针分别指向两个链表的头节点,从头节点开始比较值,把值小的节点加在另一个节点后面,比较完后,两个指针后移再比...
2018-11-17 21:08:44
492
原创 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变...
2018-11-17 20:53:59
2084
原创 寻找旋转排序数组中的最小值II
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。示例 1:输入: [1,3,5]输出: 1示例 2:输入: [2,2,2,0,1]输出: 0代码实现一:public int findMin(int[] nums){ ...
2018-11-16 15:00:37
227
原创 搜索二维数组
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true示例 2:输入:m...
2018-11-13 19:07:52
591
原创 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], ta...
2018-11-06 21:42:11
1976
原创 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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输出: 0题目分析...
2018-11-06 21:22:52
181
原创 寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0题目分析:数组是升序排列的,且其中没有重复元素,只是有可能会在某...
2018-11-06 20:56:35
736
原创 搜索旋转排序数组 II
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例 2:输入: nums = [2,5,...
2018-11-06 20:41:45
229
原创 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], targ...
2018-11-06 20:07:02
5270
原创 相交链表
编写一个程序,找到两个单链表相交的起始节点。例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始相交。注意:如果两个链表没有交点,返回 null...
2018-11-06 09:23:56
157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人