公司笔试面试题
gx_1983
这个作者很懒,什么都没留下…
展开
-
用动态规划的自底向上方法解决钢材分割的问题。
#include #include #include //用动态规划的自底向上的方法解决切钢条问题。//问题://某公司出售一段长度为i英寸的钢条,公司希望把钢条切割后出售,切割不计成本,找出最优的切割方案。//长度和价格的对应关系如下:// 1-1;2-5;3-8;4-9;5-10;6-17;7-17;8-20;9-24;10-30;#define max(x,y) ((x)原创 2014-08-23 14:39:13 · 1744 阅读 · 0 评论 -
非递归和递归方法遍历二叉树
struct node { int value; struct node * left; struct node * right;};void preOrderBTree(struct node * head) { if (head == NULL) return; stack s; s.push(head); while (!s.empty()) { struct n原创 2015-03-03 14:06:26 · 472 阅读 · 0 评论 -
编程实现单链表反转。
struct node * reverseSingleLink(struct node * head) { if(head == NULL) return head; if(head->next == NULL) return head; struct node * post = head; struct node * cur = head->next; struct node原创 2015-03-09 17:11:49 · 560 阅读 · 0 评论 -
网上找的阿里的一个面试题
struct A { void fun1() { cout << "1"; }};struct B : public A { void fun2(A * a) { cout << "2"; }};int _tmain(int argc, _TCHAR* argv[]){ A a; B * b = static_cast(&a); b->fun2(&a); b-原创 2015-03-04 21:10:59 · 682 阅读 · 0 评论 -
不考虑溢出,写一个函数把一个字符串转换成整数(atoi)。
int strToInt(char * str) { int i = 0, flag = 1, result = 0; //_ASSERT(str != NULL); if (str[0] == '-') { flag = -1; i = 1; } while (str[i] != '\0') { result = (result + (str[i] - '0'))* 10原创 2015-03-08 22:07:05 · 532 阅读 · 0 评论 -
剑指offer-面试题4-替换空格
void test1() { char str1[] = "test and test"; char str2[] = "test and test"; char * str3 = "test and test"; char * str4 = "test and test"; if (str1 == str2) cout << "The poi...原创 2015-04-20 22:33:15 · 569 阅读 · 0 评论 -
剑指offer-面试题10-二进制中1的个数
问题: 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1,因此如果输入9,该函数输出2。方法一:int countOf1(int num) { int ret = 0; int i = 0; for (i = 0; i < 32; i++) { ret += ((num &am...原创 2015-05-27 10:15:41 · 701 阅读 · 0 评论 -
剑指offer-面试题9-斐波那契数列(Fibonacci)
题目一:写一个函数,输入n,求斐波那契数列的第n项。解法一:采用递归,但是时间效率不好,原因是许多节点值都进行了多次重复计算。long long fibonacci1(int n) { if(n <= 0) return 0; if(n == 1) return 1; return fibonacci1(n-1) + fibonacci1(n-2);}解法二:采用循环,时间效率好,是...原创 2015-03-24 16:39:10 · 722 阅读 · 0 评论