面试题
文章平均质量分 63
lidalong0408
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
不用加法操作符(+)实现加法运算
问题描述:写一个函数,要求不用加法操作符(+)实现加法运算。#include#include#include/* 不用(+)运算符实现两个整数相加 */int add_without_operater(int a, int b);int main(){ unsigned num1 = -3; unsigned num2 = 5; printf("%d\n原创 2012-05-17 13:48:50 · 1191 阅读 · 0 评论 -
Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.思路分析:假设链表长度为n,循环头与头结点之间的距离为k。1. 让两个指针同时遍历链表,一个步伐为1,另一个步伐为22. 这两个指针相遇时应满足的条件: i)2s1 = s2(相同时间下,路原创 2013-11-03 14:16:27 · 3174 阅读 · 3 评论 -
Linked List Cycle
Given a linked list, determine if it has a cycle in it.原创 2013-11-03 11:46:37 · 5869 阅读 · 2 评论 -
字符串编辑距离
给定一个源串和目标串,能够对源串进行如下操作: 1.在给定位置上插入一个字符 2.替换任意字符 3.删除任意字符写一个程序,返回最小操作数,使得对源串进行这些操作后等于目标串,源串和目标串的长度都小于2000。输入:两个字符串,一个源串,一个目标串输出:最小操作数解题思路:动态规划算法求解,其中状态转移方程是:f[i, j] = min {f[i-1,原创 2013-03-22 20:52:48 · 589 阅读 · 0 评论 -
两个有序数组的中位数
问题一:两个有序数组,且长度都为n。找出中位数。解决这个问题的方法很多。方法一:基于归并排序的merge方法。找出两个数组中第n大的数和第n+1大的数,然后求它们的平均数。时间复杂度为O(n)。方法二:比较两个数组中的中位数的大小。每一次比较都能缩小两个数组的搜索范围。时间复杂度为O(nlgn)。public static double findMedianInSameLeng原创 2013-03-21 00:37:02 · 676 阅读 · 0 评论 -
最长合法括号序列
题目描述:给你一个长度为N的,由’(‘和’)’组成的括号序列,你能找出这个序列中最长的合法括号子序列么?合法括号序列的含义便是,在这个序列中,所有的左括号都有唯一的右括号匹配;所有的右括号都有唯一的左括号匹配。例如:((()))()()便是一个长度为10的合法括号序列,而(()))( 则不是。需要你求解的是,找出最长的合法括号子序列的长度,同时找出具有这样长度的序列个数。输入:原创 2013-03-19 20:55:26 · 2186 阅读 · 0 评论 -
打印从0到1000的所有素数
打印从0到1000的所有素数public class Prime { static public int counter = 0; public static void printPrime(int start, int end) { for (int i = start; i <= end; i++) { if (isPrime(i)) { Syst原创 2013-03-19 17:48:55 · 1080 阅读 · 0 评论 -
斐波纳契数列(递归实现)
已知斐波纳契数列如下:F[1] = 1, F[2] = 1, F[3] = 2, F[4] = 3, ..., F[n] = F[n-1] + F[n-2],那么请问F[34] + F[32] == ?解题思路:运用HashMap存储已经计算过的斐波那契数,这样可以大量减少重复的计算。import java.util.HashMap;import java.util.Map;p原创 2013-03-19 16:34:08 · 730 阅读 · 0 评论 -
字符串循环右移
定义字符串循环右移操作:把一个长度为N的字符串内的元素循环右移K位,要求时间复杂度为O(N),空间复杂度为O(1),请编写代码实现。输入样例:N=8的字符串abcdefgh;输出样例:K=4,即字符元素右移4位,得到efghabcd。解题思路:运用编程珠玑中讲到的 “三次翻手” 原理。public class Translator { public static void ri原创 2013-03-19 16:08:35 · 1759 阅读 · 1 评论 -
数组中第一个没出现的非负整数
给定一个整数数组,里面可能有正数,负数,和0。求最小的没在其中出现的非负整数。输入: 整数数组。输出: 最小的没出现的非负整数。例如: 输入:{2,1,3} 输出0 输入:{5,2,0,1.4,1,2} 输出3 输入:{5,2,3,0,4,1} 输出6思路:遍历数组,把所有元素原神归位,尽量使得a[i] == i。然后再遍历原创 2013-03-16 00:47:33 · 1566 阅读 · 0 评论 -
查找字符串中第一个只出现一次的字符
package Exam;import java.util.HashMap;/** * 2013宜搜校园招聘笔试题 * 查找字符串中第一个只出现一次的字符 */public class FirstOnceChar { /** * 方法一:遍历每个字符,判断这个字符在字符串中第一次出现 * 和最后一次出现的索引是否一样 其实时间复杂度还是O(n^2) */ pu原创 2012-11-15 19:04:48 · 593 阅读 · 0 评论 -
字符串的组合
问题描述:输入一个字符串,输出它的所有组合。例如,输入abc,则输出 a b c ab ac bc abc。分析:如果输入的字符串的长度为n,则这个字符串能构成长度为1的组合、长度为2的组合、……、长度为n的组合。在求n个字符的长度为m(1 /* --- 注释版 --- */#include#include#includevoid Combination(cha原创 2012-05-28 23:13:58 · 441 阅读 · 0 评论 -
求数对之差最大值
今天在网上看了一个面试题,很有意思!博主讲解的很到位,思路清晰流畅,代码简洁美观。从分治法 到 一种变形 再到 动态规划。看完之后,自己把思路整理了一下,把代码自己巧了一遍。 题目:在数组中,数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。转载 2012-05-17 22:30:38 · 644 阅读 · 0 评论 -
一道Twitter编程面试题
Twitter面试题:水沟积水问题问题描述:在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]”“假如开始下雨了,那么墙之间的水坑能够装多少水呢?“在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]”“假如开始下雨了,那么墙之间的水坑能够装多少水呢?”思路分析: 一种只需要一次遍历的方法(注原创 2013-11-14 11:32:57 · 1852 阅读 · 0 评论
分享