
面试题
文章平均质量分 65
bestwolf1983
这个作者很懒,什么都没留下…
展开
-
BiTree 二叉树 基础算法及常见题目总结
1,对二叉树的几个相关概念的理清(概念内容均来自算法导论附录B的内容) (1),树:是一个连通的,无回路的无向图,如果无向图是无回路但是非连通的,称为“森林“ (2),有根树和有序树 有根树是一颗自由树,它有一个与其他点不同的结点,为树的“根”,根是唯一没有双亲的结点,没有子女的结点是叶结点或外部结点。有根树结点的子女数称为结点的“度”,结点在树中的高度是结点向下到某个叶原创 2012-10-11 15:01:19 · 2865 阅读 · 0 评论 -
数组里的正数和负数排序
# coding: gb2312 #将数组里的负数排在数组的前面,正数排在数组的后面。但不改变原先负数和正数的排列顺序。 #例:input: -5,2,-3, 4,-8,-9, 1, 3,-10;output: -5, -3, -8, -9, -10, 2, 4, 1, 3。 A = [-5,2,-3, 4,-8,-9,1, 3,-10]; print A length = len(A) i原创 2013-06-23 22:48:41 · 4794 阅读 · 0 评论 -
苦逼三流小公司程序员这半年找工作经历(3)——选择offer
本文按照企业规模、性质、规模,分成三类,点评一下遇到的这些公司。也算是为半年找工作经历的一个总结。 1,三流小公司 公司规模类似于笔者跳槽前所在企业,性质有外商独资、合资,当然大多数都是民营企业,规模一般20-200人左右。这类企业虽然规模最小,但数量却是最多的,遍布于北京的五道口、上地、学院路附近。 这类公司最大的特点是靠老板或者个别牛人的一己之力接项目养活全公司。对程序员原创 2012-12-29 16:13:02 · 23018 阅读 · 35 评论 -
写一个没有错的二分搜索程序
输入:一个升序的排序后的数组,数组长度,给定的值 输出:给定的值在序列中的位置 二分搜索的原理都很清楚,关键是写程序的时候边界条件的把握,这个才是面试官考察的重点。 int BiSearch(int A[], int len, int p) { int l = 0; int u = len - 1; while( l <= u ) {原创 2012-12-11 14:40:01 · 1973 阅读 · 1 评论 -
苦逼三流小公司程序员这半年找工作经历
本人09年毕业小硕,南方一所二流大学读的本科和研究生,毕业后就加入了目前所在这家20人左右的小公司,和媳妇一起当起了北漂一族。从今年3月份公司开始发不出工资,就动了找工作的念头,没想到一直找了半年多。这半年QQ好友“猎头”分类的好友数量迅速攀升至20人,也接触到了在北京需要“C++工程师“的各类大小企业,颇有些感触,目前仍然没有找到合适工作,写此文,算是总结这半年找工作心得,同时喘口气,继续努力吧原创 2012-11-05 09:49:04 · 11012 阅读 · 4 评论 -
苦逼三流小公司程序员这半年找工作经历(2)面试题目
换工作的事儿终于搞定了,断断续续找了半年时间,曾经有段时间感到特别低迷,连续被各种各样的理由拒掉,最变态的就是说智力测验没过,让我好郁闷了一阵。那种被打击到开始怀疑自己的感觉实在是不好。 待到11月底12月初的时候,好像一下子峰回路转了。好消息接踵而至,一口气拿了4个offer,包括一家国企,一家美资企业,两家纳斯达克上市的国内企业的offer,顿时有山高月小水落石出的感觉。接着原创 2012-12-23 14:04:21 · 25659 阅读 · 38 评论 -
合并两个排序链表
题目:将两个已经排序的单向链表合并为一个链表,要求空间复杂度尽可能的小。 思路:典型的归并排序思路,需要注意的两个地方时:1,怎样做到新链表不申请新的空间?2,代码尽量简洁? 下面是我的解答,希望跟各位网友一起讨论,算法本身是否有优化之处?如何能改进代码风格? #include "stdafx.h" class Node { public: int data; Node* nex原创 2012-12-05 17:12:26 · 3519 阅读 · 1 评论 -
反转单向链表
反转单向链表分为递归和非递归两种方式。递归的实现方式比较简单,而非递归实现效率较高,在面试时应注意边界条件。 这道题在面试时被要求现场作答的概率还是很大的,比较tricky的地方就是要在当前条件下保存好next of next的指针,如果一时想不起来程序怎么写,可以先自己画个图看看。 // ReverseList.cpp : Defines the entry point for th原创 2012-11-04 20:01:03 · 1242 阅读 · 1 评论 -
一道算法题:求和为某正整数的所有正整数集合
应该是网易的一道题目?忘记在哪里看到的了。 题目的要求是给定正整数M,求所有和为M的正整数集合。 如M=5, 则输出: 1,1,1,1,1 1,2,2 2,3 这是一道很典型的搜索问题,可以采用递归+回溯的方法来解答。 需要注意的地方有两个: 首先是必须以递增的顺序搜索数组。 其次是要注意递归调用结束后的回退(rollback), 下面是我的答案。 时间复杂度为O(2^n)原创 2012-10-24 11:57:41 · 1342 阅读 · 0 评论 -
编程之美找寻最大的K个数
解法一是最基本的排序算法,本文略过。 解法四依赖最大堆这个数据结构,多用于海量数据处理,本文略过。 重点实现了解法二和解法三。 解法二的思想是利用快排的以O(n)的时间得到某个数组中任意元素序号p,有A[i] A[p], p 解法三则从数值的角度采用了二分搜索。是一种不同的思路,相比较解法二,我认为这种方法是实现难度最低的。效率同样也是O(n*lgK) // FindMaxK.原创 2012-10-31 17:34:37 · 1469 阅读 · 0 评论 -
自己写一个atoi程序
最主要的是要考虑输入条件,程序写出来了远不是面试官的目的。各种异常情况的处理、边界条件的处理,才是面试官主要考察的内容。 我所能想到的测试用例有: 1,字符串内含有非法字符,非法字符的定义为0-9,- 之外的所有字符 2,字符串表示负数 3,字符串表示的整数溢出 以下是我写的myatoi和UT #include int myatoi(const char* a); vo原创 2012-10-29 22:10:33 · 2580 阅读 · 0 评论 -
二分数组的扩展:二分查找循环有序数组
大致思路:先确定单调区间,然后根据判断指定点是否在单调区间内,剪掉另外一半区域~~如此循环。直到循环跳出,或者找到指定值对应的位置为止结束。 程序在cygwin下g++上编译通过。 #include #include using namespace std; int findPos(const vector& array, int var) { size_t原创 2014-01-22 11:44:43 · 2517 阅读 · 1 评论