笔试题(java实现)
山鬼谣弋痕夕
学习,记录,改变
展开
-
暗黑字符串思路(递归公式找规律)
暗黑字符串思路:题目描述一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。例如:BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个,所以是纯净的字符串AABBCCAABB 不存在一个长度为3的连续子串包含'A','B','C',所以是暗黑的字符...转载 2018-09-01 15:13:54 · 217 阅读 · 0 评论 -
LeetCode: max-points-on-a-line
题目描述Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.找二维图上在同一条直线上最多的点数,这里需要分析的是1)有重复点的情况2)在一条直线上的分类,分为斜率可以求的,和斜率不可以求的。由于斜率可以代表直线的特征,我们这里可以使用斜率来作为键细节处理...原创 2018-06-13 17:52:37 · 242 阅读 · 0 评论 -
剑指offer: 按之字形顺序打印二叉树(避免坑)
题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路:1、实现之字形打印二叉树,需要对每一层的结点进行分类,同时其打印的顺序也是需要从左往右、或者从右往左都是需要根据其具体的层数进行判断的;2、对于在每次出栈或者入栈的时候,需要对栈进行判断,对结点是否具有子节点进行判断,否则得到的ArrayLi...原创 2018-06-21 10:51:13 · 227 阅读 · 0 评论 -
剑指offer: 找出两个链表的第一个公共结点(细节解释两种方法)
题目描述输入两个链表,找出它们的第一个公共结点。思路:1、首先需要明确的是两个链表在有第一个公共结点后,其为共尾的,就是后面的结点都是一样的,这是由链表的性质决定的;2、可以利用HashMap的性质来做,key设置成结点(方法一),注意对HashMap的方法put、containsKey等方法的使用;3、由于是共尾的,为节省时间,可以让长链表减去短的链表的长度后开始进行比较(方法二);4、对链表的...原创 2018-06-21 10:19:41 · 158 阅读 · 0 评论 -
LeetCode: symmetric-tree判断是否为镜像树
题目描述Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric: 1 / \ 2 2 / \ / \3 4 4 3But the following i...原创 2018-05-14 21:33:34 · 682 阅读 · 0 评论 -
LeetCode:binary-tree-zigzag-level-order-traversal(字符串一条龙按层打印)
题目描述Given a binary tree, return the zigzag level ordertraversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).For example:Given binary tre...原创 2018-05-14 20:59:05 · 428 阅读 · 0 评论 -
笔试题:字符串编码解码
题目描述1、对输入的字符串进行加解密,并输出。2加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。3、解密方法为加密的逆过程。 接口描述: 实现接口,每个接口实现1个基本操作:void Encrypt (char aucPassword[]...原创 2018-04-29 22:50:21 · 752 阅读 · 0 评论 -
LeetCode: surrounded-regions(深度遍历的应用)
题目描述Given a 2D board containing'X'and'O', capture all regions surrounded by'X'.A region is captured by flipping all'O's into'X's in that surrounded region .For example,X X X XX O O XX X O XX O X X...原创 2018-05-07 18:36:05 · 342 阅读 · 0 评论 -
笔试题:字符串排序
题目描述编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。 如,输入: By?e 输出: Be?y样例: ...原创 2018-04-28 22:47:28 · 2200 阅读 · 0 评论 -
LeetCode:linked-list-cycle-i&linked-list-cycle-ii(链表环问题)
题目描述Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space? 判断是否有环,注意此时可以设置快慢指针,速度为1和2,不能设置为其他的因为1是任何整数的约数,环的长度就是快指针比慢指针多走的长度,这个长度一定可以被1整除,但是不一定被大于...原创 2018-04-28 11:10:48 · 218 阅读 · 0 评论 -
招行信用卡笔试题:卡中心美食家
[编程题] 卡中心美食家时间限制:1秒空间限制:32768K在卡中心隐藏了很多美食,作为一名资深吃货,楼主告诉你需要去品尝n道美味才能达成“卡中心小小美食家”的成就。这些菜品被标号为 0 到 n-1 。正所谓美食家不是一口吃成个胖子的,每道美味的品尝顺序也是有讲究的,比如西餐的上菜顺序:头盘,汤,副菜,主菜,蔬菜类菜肴,甜品,咖啡或茶。有一些美味需要“前置菜肴”,比如如果你要吃菜品0,你需要先吃菜...原创 2018-04-28 10:25:07 · 881 阅读 · 0 评论 -
32位机器的显示
下面程序的输出结果为多少(32位机器上)?123456789101112void Func(char str_arg[2]){ int m = sizeof(str_arg); int n = strlen(str_arg); printf("%d\n", m); printf("%d\n", n);}int main(void){ char str[] = "Hel...原创 2018-04-27 20:24:43 · 454 阅读 · 0 评论 -
LeetCode: Sort a linked list using insertion sort.
题目描述Sort a linked list using insertion sort.分析:使用o(nlogn)的时间复杂度和常量空间复杂度,对链表排序,只能使用归并排序。归并排序是将两个或两个以上的有序链表合并成一个新的链表。常见的是二路归并排序算法,思想是将数组或链表中前后相邻的两个有序序列归并为一个有序序列,时间复杂度为o(nlogn),需要等数量的辅助空间。public class Li...原创 2018-06-13 21:57:02 · 227 阅读 · 0 评论 -
剑指offer:跳台阶&变态跳台阶
题目描述(跳台阶)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题目描述(变态跳台阶)一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路分析:1、类似这种问题,使用递归实现,需要找到其递归的关系,第n个结果和第n-1结果之间的关系2、第二个变态跳台阶问题分析需要认真,因为n级台阶,第一步有n...原创 2018-06-23 16:52:17 · 202 阅读 · 0 评论 -
数字游戏
题目描述小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中...转载 2018-08-29 19:35:10 · 133 阅读 · 0 评论 -
面试题——字典序(今日头条2017秋招真题)
题目描述给定整数n和m,将1到n的这n个整数按字典序排列之后,求其中的第m个数字。举例:对于n = 11,m = 4,按字典序排列依次为1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9,因此第4个数字为2。1 2 3输入:仅包含两个整数n和m 样例输入: 11 4 输出:仅包括一行,即所求排列中的第m个数字 样例输出:2 时间限制 C/C+...转载 2018-08-24 19:42:23 · 315 阅读 · 0 评论 -
不用动态规划实现餐馆题
题目描述某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大输入描述:输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即每个桌子可容纳...原创 2018-08-19 10:03:44 · 435 阅读 · 0 评论 -
保留最大数字
题目描述给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。输入描述:输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 50000。第二行是希望去掉的数字数量cnt 1 ≤ cnt < length(number)。输出描述:输出保留下来的结果。关键点:1、首先去考虑这个目标是...原创 2018-08-11 22:53:43 · 389 阅读 · 0 评论 -
不要2之java实现
题目描述二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组...原创 2018-08-11 21:20:33 · 304 阅读 · 2 评论 -
今日头条2017笔试题之出题数量
题目:出题数量一些出题人出了 n 道题,每道题有一个难度系数,难度系数满足以下关系的 3 道题可以组成一套试卷,为了使这 n 道题使用上且只能使用一次,问出题人最少还要出多少题?a<=b<=cb-a<=10;c-b<=10;解决方法: 每个三元组均寻找最接近的组成考试,最终需要增加的题目也就越少。 1. 对题目难度进行排序,并将结果储存到数组中。...原创 2018-08-11 14:49:22 · 537 阅读 · 0 评论 -
剑指offer:二叉树的下一个结点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路分析:1、这张图帮助我们来分析树的问题,红色的箭头代表的是其下一个结点分情况: a)有右子树的,那么下个结点就是右子树最左边的点;(eg:D,B,E,A,C,G) b) 没有右子树的,也可以分成两类: 1)是父节点左孩子(eg:N,I,L)...原创 2018-07-02 23:13:45 · 194 阅读 · 0 评论 -
剑指offer:找出整型数组(两个)只出现一次的数(其他数字偶数次)
剑指offer:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:1)如果把数组中的所有数字都依次异或一遍,则可以消掉成对出现的数字,那么还有两个数字是单一的,肯定也不同,那么最终异或的结果肯定不是0。表示在二进制中肯定有一位是1,那么两个不同的数字,一定有一个在该位为1,另一个在该位为0。如果将整个数组按照该位是否为1分为两部分,那么这两部分各自包...原创 2018-06-20 16:20:42 · 361 阅读 · 0 评论 -
剑指offer:使用巧妙方法解决的问题
题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路分析:1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0;3.当n>0时,执行sum+...原创 2018-07-01 11:52:12 · 469 阅读 · 0 评论 -
剑指offer:找逆序对的个数
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007思路分析:1、如果暴力搜索,复杂度会很高,考虑归并排序实现代码如下:...原创 2018-06-30 17:22:12 · 289 阅读 · 0 评论 -
剑指offer:二叉搜索树转双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:1、二叉搜索树的排序解决多和中序遍历的解决有关,分析该题目,完成对二叉搜索树向链表的转换,关键的思想在于考虑在何时去改变结点之间的指针;2、考虑非递归的实现,可以使用栈来解决,先需要找到起始的头结点,那么就需要找到树的最左边的结点,每次找都是找到最左边,找到后出栈,记录其...原创 2018-06-30 10:36:49 · 240 阅读 · 0 评论 -
LeetCode:Permutation Sequence 序列排序
题目描述The set[1,2,3,…,n]contains a total of n! unique permutations.By listing and labeling all of the permutations in order,We get the following sequence (ie, for n = 3): "123" "132" "213" "...原创 2018-05-12 11:36:12 · 255 阅读 · 0 评论 -
剑指offer: 二叉树中和为某一值的路径
题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。注意在深度遍历的时候要回退结点import java.util.*;public class Pathtree { public static void main(String[] args) { TreeNode root=n...原创 2018-04-27 10:01:16 · 228 阅读 · 0 评论 -
LeetCode: isValidBST(两种方法实现)
题目描述Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node's key.The ri...原创 2018-05-03 16:07:12 · 1288 阅读 · 0 评论 -
LeetCode:巧妙思路解决字符串数字前后加*问题
1、题目描述将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变 public static String MarkNum(String pInStr) { return null; }输入描述:输入一个字符串输出描述:字符中所有出现的数字前后加上符号“*”,其他字符保持不变示例1输入Jkdi234klowe90a3输出Jkdi*234*klowe*90*a*3*思路:将数字...原创 2018-05-09 18:27:57 · 2506 阅读 · 1 评论 -
LeetCode:The longest consecutive elements sequence in unsorted array
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.给出无序的数组,找到最多连续的数组的长度For example,Given[100, 4, 200, 1, 3, 2],The longest consecutive elements sequence ...原创 2018-04-21 15:28:22 · 196 阅读 · 0 评论 -
set用法——称砝码练习
题目描述现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。 注:称重重量包括0 方法原型:public static int fama(int n, int[] weight, int[] nums)输入描述:输入包含多组测试数据。对于每组测试数据:第一行:n --- 砝码数(...原创 2018-05-02 21:33:20 · 297 阅读 · 0 评论 -
对/和%的应用的数字转英文练习java
题目描述Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:如22:twenty two,123:one hundred and twenty three。 说明:数字为正整数,长度不超过九位,不考虑小数,转化结果为英文小写;输出格式为twenty two;非法数据请返回“error”;关键字提示:and,billion,million,thousand,hundred。 方法原型...原创 2018-05-02 21:05:14 · 604 阅读 · 0 评论 -
水仙花数java编程实现
题目描述春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。输入描述:输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。输出描述:对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说...原创 2018-04-24 22:29:11 · 9724 阅读 · 0 评论 -
LeetCode: palindrome-partitioning
题目描述Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For example, given s ="aab",Return [ ["aa","b"], ...原创 2018-04-24 18:03:33 · 211 阅读 · 0 评论 -
LeetCode: recover-binary-search-tree
题目描述Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note: A solution using O(n ) space is pretty straight forward. Could you devise a ...原创 2018-04-23 22:35:46 · 204 阅读 · 0 评论 -
LeetCode: same-tree
题目描述Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.判断两个二叉树是否相等,返回...原创 2018-04-23 21:47:17 · 183 阅读 · 0 评论 -
LeetCode :path sum
题目描述Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.For example:Given the below binary tree andsum =...原创 2018-04-22 21:50:41 · 161 阅读 · 0 评论 -
LeetCode:reorder_list
题目描述Given a singly linked list L: L 0→L 1→…→L n-1→L n,reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→…You must do this in-place without altering the nodes' values.For example,Given{1,2,3,4}, reorder it t...原创 2018-04-22 21:11:48 · 154 阅读 · 0 评论 -
java中假的关键字
true、false、null都不是关键字goto、const、是保留的关键字abstract continue for new switch default if package synchronized ...原创 2018-05-03 12:34:18 · 438 阅读 · 0 评论 -
LeetCode: maximum path sum(二叉树)
Given a binary tree, find the maximum path sum.The path may start and end at any node in the tree.For example:Given the below binary tree, 1 / \ 2 3找到二叉树的最大路径首先我们分析一下对于指定某个节点为根时,最大的...原创 2018-04-21 21:47:43 · 233 阅读 · 0 评论