面试题
liqingtx
这个作者很懒,什么都没留下…
展开
-
Leetcode 1117 H2O
题目:现在有两种线程,氢 oxygen 和氧 hydrogen,你的目标是组织这两种线程来产生水分子。存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。这些线程应该三三成组突破屏障并能立即组合产生一个水分子。你必须保证产生一个水分子所...原创 2020-04-06 15:54:24 · 297 阅读 · 0 评论 -
LeetCode 1115 交替
题目:我们提供一个类:class FooBar { public void foo() {for (int i = 0; i < n; i++) {print("foo"); } } public void bar() {for (int i = 0; i < n; i++) {print("bar");...原创 2020-03-29 11:54:05 · 315 阅读 · 0 评论 -
LeetCode 1114 按序打印
题目:我们提供了一个类:public class Foo {public void one() { print("one"); }public void two() { print("two"); }public void three() { print("three"); }}三个不同的线程将会共用一个Foo实例。线程 A 将会调用 one() 方法线程 ...原创 2020-03-28 15:50:26 · 294 阅读 · 0 评论 -
LeetCode 104 二叉树的最大深度
题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。思路:递归解法:class Solution {...原创 2020-02-28 16:54:18 · 204 阅读 · 0 评论 -
LeetCode 101 对称二叉树
题目:思路:解法:class Solution { public boolean isSymmetric(TreeNode root) { return isSame(root,root); } public boolean isSame(TreeNode p,TreeNode q){ if(p=...原创 2020-02-24 19:51:10 · 121 阅读 · 0 评论 -
LeetCode 100 相同的树
题目:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:...原创 2020-02-24 15:43:51 · 97 阅读 · 0 评论 -
LeetCode 88 合并2个有序数组
题目:给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3num...原创 2020-02-23 14:09:36 · 81 阅读 · 0 评论 -
LeetCode 70 爬楼梯
题目:假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2....原创 2020-02-22 16:56:59 · 107 阅读 · 0 评论 -
LeetCode 69 x的平方根
题目:实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。思路:当 x \ge 2x≥2 时,它...原创 2020-02-22 14:27:50 · 163 阅读 · 0 评论 -
LeetCode 66 加一
题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 432...原创 2020-02-20 21:23:24 · 98 阅读 · 0 评论 -
LeetCode 58 最后一个单词的长度
题目:给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0。说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。示例:输入: "Hello World"输出: 5解法:class Solution { pu...原创 2020-02-20 16:53:22 · 97 阅读 · 0 评论 -
LeetCode 35 搜索插入位置
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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输出:...原创 2020-02-19 20:05:26 · 103 阅读 · 0 评论 -
LeetCode 28 实现 strStr()
题目:实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", need...原创 2020-02-19 19:37:35 · 91 阅读 · 0 评论 -
LeetCode 27 移除元素
题目:给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums...原创 2020-02-19 18:49:06 · 83 阅读 · 0 评论 -
LeetCode 26 删除排序数组中的重复项
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例...原创 2020-02-19 16:30:54 · 63 阅读 · 0 评论 -
LeetCode 14 最长公共前缀
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。思路:解答:class So...原创 2020-02-18 18:51:39 · 68 阅读 · 0 评论 -
LeetCode 13 罗马数字转整数
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列...原创 2020-02-18 10:46:09 · 427 阅读 · 0 评论 -
LeetCode 9 回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2020-02-17 17:35:45 · 84 阅读 · 0 评论 -
LeetCode 7 整数反转
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...原创 2020-02-17 17:05:18 · 72 阅读 · 0 评论 -
LeetCode 150 逆波兰表达式求值
根据逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9示...原创 2020-02-16 17:25:13 · 104 阅读 · 0 评论 -
LeetCode 20 有效的括号
classSolution{privateMap<Character,Character>map;publicSolution(){map=newHashMap<Character,Character>();map.put('}','{');map.put(']','['...原创 2020-02-15 15:56:29 · 83 阅读 · 0 评论 -
LeetCode 1 两数之和
LeetCode 1 两数之和解法:classSolution{publicint[]twoSum(int[]nums,inttarget){Map<Integer,Integer>map=newHashMap();for(inti=0;i<nums.length;i++){...原创 2020-02-15 11:18:29 · 96 阅读 · 0 评论 -
LeetCode 155 最小栈
classMinStack{privateStack<Integer>mainStack;privateStack<Integer>minStack;/**initializeyourdatastructurehere.*/publicMinStack(){mainStack=...原创 2020-02-14 20:36:49 · 109 阅读 · 1 评论 -
Java研发工程师面试题
基础题一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?1. String是字符串常量,StringBuffer和StringBuilder是字符串变量。StringBuffer是线程安全的,StringBuilder是非线程安全的。具体来说String是一个不可变的对象,每次修改String对象实际上是创新新对象,并将引用指向新...转载 2018-05-31 22:33:50 · 825 阅读 · 0 评论 -
多线程循环输出1 2 3
方法一:import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ThreadTest { private static int task = 0; public static void main(String args[]) { final Lock l...原创 2018-03-25 09:56:32 · 618 阅读 · 0 评论 -
编程题1-字符串反转
class Solution { public String reverseString(String s) { if(s==null || s.length()<2){ return s; } char[] sChar=s.toCharArray(); int sLen=sChar.leng...原创 2018-03-05 22:01:00 · 395 阅读 · 0 评论 -
深入浅出数据库索引原理
前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:“是不是数据库查询上出问题了, 给表加上索引吧”,然后妹子来了一句:“现在我们网站访问量太大,加索引有可能导致写入数据时性能下降,影响用户使用的”。当时我就楞了...转载 2018-03-17 21:06:54 · 229 阅读 · 0 评论 -
堆排序
public class HeapSort { public void heapSort(int a[], int n) { if(a==null) return; if(n<1) return; for (int i = n-1; i >= 1; i--) { swap(a,0,i); heapAdjust(a, 0, i); } } public vo...原创 2018-03-17 10:36:25 · 171 阅读 · 0 评论 -
编程题2- Merge Two Sorted Lists(leetcode-21)
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode mergeTwoLists(ListNo...原创 2018-03-06 22:18:12 · 166 阅读 · 0 评论 -
atoi(c++实现)
写atoi时,发现有很多细节要注意,经过多次测试,写了一个考虑比较全面的原创 2014-10-07 10:36:21 · 605 阅读 · 0 评论