笔试题
文章平均质量分 92
胖墩的IT
一步一个脚印走下去,相信自己能成功,
学习的3W原则:who,what,which
生活的3W原则:who,what,why
展开
-
给一组数,可以重复组合,组成一个比n刚好小的数字
面试给的这个算法题,也不知道LeetCode上有没有这个题,反正当时没写出来,有点事后诸葛亮的感觉,下面是解题代码逻辑,当然测试用例少,不保证对,如果有不对的希望大家指出来,或者我没想到的情况,后续慢慢修改题目:给你一个n和一个数字的数组,比如n=23121,数组A={2,4,9},当然保证数组A中都是个位数,并且没有重复的,没说数组A有序,我这默认有序,结果得到一个数22999,就是数组A拼出来的一个刚好比n小的数。代码: public static void main(String[] ar.原创 2022-04-02 00:41:20 · 2250 阅读 · 11 评论 -
从1到n整数出现的次数
题目:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。这个题目我想来一个小时,看别人的优秀代码看不懂,唉,菜是原罪,我就自己用自己...原创 2019-08-22 20:37:53 · 503 阅读 · 0 评论 -
输入一棵二叉树,判断该二叉树是否是平衡二叉树
题目就是标题public class Main3 { public boolean IsBalanced_Solution(TreeNode root) { int flag= Balanced_Solution(root, 0); if(flag!=-1) { return true; }else { return false; } ...原创 2019-08-23 17:46:54 · 270 阅读 · 0 评论 -
序列化二叉树和反序列化二叉树
题目描述请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到...原创 2019-08-26 20:13:42 · 390 阅读 · 0 评论 -
给二叉树中的一个节点判定此二叉树中序遍历中给的节点的下一个是什么
题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。此图来自https://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e?f=discussion程序:/*public class TreeLinkNode {...原创 2019-08-25 15:21:28 · 204 阅读 · 0 评论 -
Java反射机制的功能
Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。...转载 2019-03-14 10:46:00 · 211 阅读 · 0 评论 -
equals和 ==对int和Integer类型
= =如果是primitive主类型,那么比较值;如果是对象,那么比较引用地址equals需要根据具体对象的实现来判断,在Integer里面是判断值是否相等一般说来,如果是两个Integer类型进行= =比较,就是比较两个Integer对象的地址。但是有一点需要注意的是在-128至127这个区间,如果创建Integer对象的时候(1)Integer i = 1; (2) Integer i = ...转载 2019-03-14 10:52:22 · 1758 阅读 · 0 评论 -
字符串排列
题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。有可能有大写字母和重复的字符首先来看我自己写的程序我自己写的不如别人的简洁而且省资源,但是容易理解,就两个关键步骤,一个是全排列,第二个就是查重和排序我想你刚开始看到这个题也是这种想法,但是怎么实现呢?i...原创 2019-08-22 17:01:08 · 113 阅读 · 0 评论 -
判断数组是否是二叉搜索树的后序遍历序列
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。首先你要知道什么是二叉搜索树?对于节点来说,根节点比左节点大,比右节点小,后序序列代表着遍历顺序是左右根这样就知道数组最后一个肯定是根节点,而可以用根节点把这个数组分割开,分成两部分,前部分都比根节点小,后部分都比根节点大,这样就满足二叉搜索树的后...原创 2019-08-21 17:28:26 · 860 阅读 · 0 评论 -
二叉树按行输出(一层是一行)和按之字型来输出
1、按行输出题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。解析: 这个和广度优先搜索的区别就是你需要知道那个节点到哪个节点是一行。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/*public class TreeNode { int va...原创 2019-08-26 13:44:33 · 754 阅读 · 0 评论 -
复杂链表的复制
题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)这个题目分三步走把新的节点插入旧链表对应节点的后面一个节点,即123456变成1(1)2(2)3(3)4(4)5(5)6(6)遍历一遍新的链表,偶数位的random是前面...原创 2019-08-22 15:20:11 · 161 阅读 · 0 评论 -
求二叉树和为某一个数的路径
题目描述 :输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)这个题目没什么新颖的,先分析一下再说一下我想到的细节我先摘抄一份大神的代码,来自https://www.nowcoder.com/questionTerminal/b736e784...原创 2019-08-21 19:23:24 · 294 阅读 · 0 评论 -
判断一个二叉树是否是另一个二叉树的子树
利用短路特性,参考https://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88?f=discussion题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)public class TreeNode { int val = 0; TreeNo...原创 2019-08-21 14:42:36 · 1866 阅读 · 3 评论 -
判定字符串是否是数值
题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。提示一下:这里e和E是一样的功能,比如5e2和5e+2是一样的,5e-2和5E-2都是数值,这里e或者E后不能跟小数public class ...原创 2019-08-24 22:47:40 · 405 阅读 · 0 评论 -
腾讯笔试题之贪吃的小Q
先说一句,大佬就是大佬,这脑回路是怎么绕出来的。小Q的父母要出差N天,走之前给小Q留下了M块巧克力。小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,表示父母出差的天数N(N<=50000)和巧克力的数量M(N<=M<=...原创 2019-08-17 15:53:14 · 925 阅读 · 0 评论 -
删除链表中重复的数
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/* public class ListNode { int val; ListNode next = null; ListNode(int ...原创 2019-08-25 12:58:57 · 285 阅读 · 0 评论 -
N叉树的后序遍历
下面这个是leetcode中第590题给定一个 N 叉树,返回其节点值的后序遍历。例如,给定一个 3叉树 :返回其后序遍历: [5,6,3,2,4,1].说明: 递归法很简单,你可以使用迭代法完成此题吗?下面就是一位大神的答案,好理解class Node { public int val; public List<Node> children; ...原创 2019-09-10 22:15:09 · 405 阅读 · 0 评论 -
多行数字,下一行数是上一行数字的解释(忘了题目了)
public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); if(num==1){ System.out.println(1); return; } if(num<=0){ return;.原创 2020-08-05 23:36:12 · 596 阅读 · 0 评论 -
如何在多线程中避免发生死锁
死锁:在多道程序设计环境下,多个进程可能竞争一定数量的资源,。一个进程申请资源,如果资源不可用,那么进程进入等待状态。如果所申请的资源被其他等待进程占有,那么该等待的进程有可能无法改变状态,这种情况下称之为死锁。死锁的四个条件:互斥:至少有一个资源必须处在非共享模式,即一次只能有一个进程使用,如果另一进程申请该资源,那么申请进程必须延迟直到该资源释放为止。占有并等待:一个进程必须占有至少一个...转载 2019-03-09 14:11:09 · 4711 阅读 · 0 评论 -
Int和Integer的比较
intValue()是把Integer对象类型变成int的基础数据类型;parseInt()是把String 变成int的基础数据类型;Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D...原创 2019-03-14 10:01:20 · 221 阅读 · 0 评论 -
复数幂
设i为虚数单位。对于任意正整数n,(2+3i)^n 的实部和虚部都是整数。求 (2+3i)^123456 等于多少? 即(2+3i)的123456次幂,这个数字很大,要求精确表示。答案写成 “实部±虚部i” 的形式,实部和虚部都是整数(不能用科学计数法表示),中间任何地方都不加空格,实部为正时前面不加正号。(2+3i)^2 写成: -5+12i,(2+3i)^5 的写成: 122-597i...原创 2019-03-23 19:40:41 · 1085 阅读 · 0 评论 -
方格计数(蓝桥javaB组)
转载自:https://www.cnblogs.com/chiweiming/p/10424360.html如图p1.png所示,在二维平面上有无数个1x1的小方格。我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。你能计算出这个圆里有多少个完整的小方格吗?注意:需要提交的是一个整数,不要填写任何多余内容。解题思路:圆心为坐标原点,一共四个象限,计算出一个象限的所有完整方格*...转载 2019-03-23 19:39:24 · 582 阅读 · 0 评论 -
青蛙跳台阶问题
这个是个经典问题一次可以跳1阶或者2阶,那n阶楼梯有多少种一开始我推导的,一阶:1二阶:2三阶:3四阶:5五阶:8六阶:13…我也就推导到6,之后找了一下规律,1+2=32+3=53+5=88+5=13我就直接写了下面这个程序 public int JumpFloor(int target) { if(target<=0){ return 0;...原创 2019-08-21 12:25:50 · 294 阅读 · 0 评论 -
单向链表反转
这个题目很多面试都要手撕的class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class Main6 { public ListNode ReverseList(ListNode head) { i...原创 2019-08-21 13:12:55 · 116 阅读 · 0 评论 -
经典的面试和笔试问题之扔鸡蛋问题
推荐下面的文章,讲解的很透彻。一篇文章带你搞定经典面试题之扔鸡蛋问题原创 2019-08-27 13:44:21 · 220 阅读 · 0 评论 -
冒泡排序,选择排序,插入排序,归并排序,快速排序,堆排序,
这里分别用程序来实现这些常见的排序,唉,还是菜,手撕要是写不出来就尴尬了首先一张图来看看都有哪些排序并分析它们来自常见的排序算法有哪些?如何实现这些算法?,可以去看看,里面用动态图介绍了几种排序的逻辑,我这主要是程序为主,关于理念概念什么的可以自行百度了1、冒泡排序通过相邻的两个数进行比较大小,大的换到后面,小的换到前面,这样一轮下来数组中最大的数就被放在了数组的最后一个,第...原创 2019-09-10 22:16:17 · 1875 阅读 · 2 评论 -
有趣的排序
题目:度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置。问最少操作多少次可以使得数组从小到大有序?解答人的思路是上面出现的前提是每个数字只能移动一次,根据题意移动一次就可以排序成符合题意的答案,最重要的一句话就是检查有多少已经排好序的元素的个数程序:import java.util.Array...原创 2019-09-16 18:52:58 · 286 阅读 · 0 评论 -
滑动窗口的最大值(双端队列Deque)
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, ...原创 2019-03-22 22:04:30 · 898 阅读 · 0 评论 -
第一个只出现一次的字符(LinkedHashMap与HashMap)
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).import java.util.LinkedHashMap;import java.util.Map;public class Solution { public int FirstNotRepeatingChar(Str...原创 2019-03-20 22:08:24 · 204 阅读 · 0 评论 -
知道二叉树的前序遍历,中序遍历数组求二叉树
根据剑指Offer里别人提交的答案进行分析(有思路,但是没实现)参考https://www.nowcoder.com/questionTerminal/8a19cbe657394eeaac2f6ea9b0f6fcf6?f=discussionpublic class Solution { public TreeNode reConstructBinaryTree(int [] ...原创 2019-08-21 11:12:06 · 1146 阅读 · 0 评论 -
二叉树的前序遍历,中序遍历,后序遍历
这三也是经典的二叉树的三种方法二叉树的前序遍历前序遍历就不写了,很简单,和深度优先一样,我不知道别人有用什么奇怪方法的,但是我用栈来实现深度优先,可以参考二叉树广度优先搜索和深度优先搜索二叉树的中序遍历这个需要写一写二叉树的后序遍历...原创 2019-08-20 18:33:37 · 16512 阅读 · 0 评论 -
二叉树的深度(前序遍历)
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。import java.util.LinkedList;import java.util.List;import java.util.Collections;/**public class TreeNode { int val = 0; TreeNode...原创 2019-03-21 14:58:24 · 1510 阅读 · 0 评论 -
树的子结构
链接:https://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88来源:牛客网输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)第一种:class Solution { bool isSubtree(TreeNode* pRootA, TreeNode...原创 2019-03-17 23:08:43 · 133 阅读 · 0 评论 -
合并两个排序的链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { ...原创 2019-03-17 21:07:23 · 134 阅读 · 0 评论 -
反转链表
输入一个链表,反转链表后,输出新链表的表头。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Reverse...原创 2019-03-17 19:22:56 · 143 阅读 · 0 评论 -
链表的截取
输入一个链表,输出该链表中倒数第k个结点。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindKth...原创 2019-03-17 13:14:04 · 1083 阅读 · 0 评论 -
二进制有多少个1
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。链接:https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8来源:牛客网public class Solution { public int NumberOf1(int n) { int count = 0;...转载 2019-03-17 11:07:39 · 541 阅读 · 0 评论 -
丑数
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。import java.util.List;import java.util.LinkedList;public class Solution { public int GetUglyNumber_Sol...原创 2019-03-20 21:38:11 · 135 阅读 · 0 评论 -
把数组排成最小的数(先定最小的数)
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。import java.util.ArrayList;public class Solution { public String PrintMinNumber(int [] numbers) { Stri...原创 2019-03-20 20:49:34 · 228 阅读 · 0 评论 -
2018字节跳动后端笔试第二批三个题
链接:https://www.nowcoder.com/questionTerminal/429c2c5a984540d5ab7b6fa6f0aaa8b5来源:牛客网作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串...原创 2019-03-15 17:17:44 · 896 阅读 · 9 评论