
编程题
a469142780
这个作者很懒,什么都没留下…
展开
-
腾讯2017暑期实习生编程题之构造回文
题目描述: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述: 对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子: abcda google输出例子: 2 2说原创 2017-05-23 14:45:08 · 431 阅读 · 0 评论 -
青蛙跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:倒着推。首先跳一级有一种可能,然后剩下的有f(n-1)中可能;跳两级的有一种可能,然后剩下的有f(n-2);一次类推,跳n级的有一种可能,然后剩下的有f(n-n)=f(0)(f(0)定义为1)种可能。因为是分类计算,所以结果要相加。 参考代码:public int J原创 2017-07-27 23:15:35 · 258 阅读 · 0 评论 -
反转链表
题目描述:输入一个链表,反转链表。参考代码:import java.util.ArrayList;public class Solution { public ListNode ReverseList(ListNode head) { if(head == null){ return null; } int len =原创 2017-07-28 11:03:35 · 201 阅读 · 0 评论 -
2017华为研发工程师编程题之明明的随机数
题目描述: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 Input Param n原创 2017-05-15 20:49:04 · 758 阅读 · 0 评论 -
2017华为研发工程师编程题之汽水瓶
题目描述: 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?思路原创 2017-05-15 20:43:05 · 742 阅读 · 0 评论 -
树的子结构
题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路: (1)如果二叉树A,B根节点相同,则只需要验证二叉树A,B的左右子树都相同即可。否则,为false。AHasB函数就是来验证这一性质的。 (2)如果二叉树A,B的根节点不相同,则需要验证A的左子树与B相同,或者A的右子树与B相同。如果满足则成立,否则不成立。public class S原创 2017-07-28 15:23:51 · 206 阅读 · 0 评论 -
顺时针打印矩阵
题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (4X4矩阵) 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.懒得描述了,直接上代码了。import java.util.ArrayList;public class Mai原创 2017-07-28 17:33:45 · 237 阅读 · 0 评论 -
栈的压入弹出序列
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)有点简单,不想解释了!!import java.util.ArrayList;public原创 2017-07-28 20:44:04 · 189 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public static boolean VerifySquenceOfBST(int[] sequence) { if(sequence == null || sequence.length == 0){ r原创 2017-07-28 22:08:26 · 210 阅读 · 0 评论 -
根据先序遍历和中续遍历重构二叉树
今天在牛客网上遇到这样一道题,题目内容如下: 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目的意思是根据一棵二叉树的先序和后续序列重构二叉树。 阶梯思路是: (1)首先先序中的第一原创 2017-07-27 21:57:30 · 1718 阅读 · 1 评论 -
删除链表中重复的结点
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。注意原链表头节点的处理。参考代码:/* public class ListNode { int val; ListNode next = null; ListNode(int val) {原创 2017-08-03 11:27:17 · 324 阅读 · 0 评论 -
链表中环的入口结点
题目描述: 一个链表中包含环,请找出该链表的环的入口结点。分析: 第一步,找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二步,直到p1==p2找到在环中的相汇点。 第二步,找环的入口。接上步,当p1==p2时,p2所经过节点数为2x,p1所经过节点数为x,设环中有n个节点,p2比p1多走一圈有2x=n+x; n=x;可以看出p1实际走了一个环的步数,再让p2指向链表头部原创 2017-08-03 10:51:02 · 261 阅读 · 0 评论 -
2017华为研发工程师编程题之进制转换
题目描述: 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。输入描述: 输入一个十六进制的数值字符串。输出描述: 输出该数值的十进制字符串。输入例子: 0xA输出例子: 10 参考代码:import java.util.HashMap;import java.util.Map;import java.util.Scanner;public原创 2017-05-15 20:34:41 · 850 阅读 · 0 评论 -
买帽子——百度2017春招笔试真题编程题(一)
题目描述: 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?输入描述: 首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)输出描述: 如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1输入例子: 10 10 10 10 1原创 2017-05-08 16:08:12 · 1049 阅读 · 0 评论 -
华为2016研发工程师编程题之删数据
题目描述: 有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述: 每组数据为一...原创 2017-05-16 22:32:09 · 594 阅读 · 0 评论 -
华为2016研发工程师编程题之字符集合
题目描述: 输入一个字符串,求出该字符串包含的字符集合输入描述: 每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。输出描述: 每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。输入例子: abcqweracb输出例子: abcqwer参考代码:import java.util.ArrayList;原创 2017-05-16 22:38:43 · 990 阅读 · 0 评论 -
求两个字符串的最长公共子串
首先分清出最长公共子串与最长公共子序列的区别: 找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。而最长公共子序列则并不要求连续。 比如说:两个字符串“asdfghjkl”和“adghjkl”。最长公共子串指的是:“ghjk”,而最长共子序列指的是:“adghjkl”。 由于寻找公共子序列比较简单,在这里就直接上代码了。 参考代码:public class LCS原创 2017-05-30 21:48:41 · 1581 阅读 · 0 评论 -
字符串全排列
题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。解析:题目要求,按照字典顺序打印,而且输入的字符串中还可能有重复数字,因此考虑是用TreeSet这一数据结构。此题我解决全排列的问题使用的是递归的方式,大家也可以使用非递归的方式求解。非递归的具体实现可以参看这篇文原创 2017-07-30 10:02:32 · 236 阅读 · 0 评论 -
连续子数组的最大和
题目描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长原创 2017-07-30 14:15:33 · 299 阅读 · 0 评论 -
把数组排成最小的数
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。参考代码:import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class Te原创 2017-07-30 15:31:11 · 213 阅读 · 0 评论 -
网易校招 [编程题] 数对
题目描述:>> 牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。牛牛希望你能帮他计算一共有多少个可能的数对。输入描述:输入包括两个正整数n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。输出描述:对于每个测试用例, 输出一个正整数表示...原创 2018-04-03 12:22:12 · 313 阅读 · 0 评论