![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
CJ_Study_Home
嵌入式软件工程师的路上
展开
-
剑指offer-二维数组中的查找
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 从左下角开始判断,小就向上,大就向右 bool Find(int target, vector<vector<int> > array) { ...原创 2018-07-21 18:27:02 · 109 阅读 · 0 评论 -
剑指offer-替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 class Solution { public: void replaceSpace(char *str,int length) { int oldLength = 0,newLength = 0; ...原创 2018-07-19 19:23:47 · 140 阅读 · 0 评论 -
跳台阶---一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 题目刚开始我想到的是二叉树。左1右2,后来想想非常的麻烦,然后我找寻了一下规律。 f(n) = f(n - 1)+f(n - 2).采用递归或者迭代比较方便,类似斐波那契数列。 class Solution { public: int jumpFloor(int number) { ...原创 2018-08-01 13:51:13 · 1737 阅读 · 0 评论 -
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
这个与上一篇是一样的思想。 f(n) = f(n-1) + f(n-2) + f(n-3) + ... + f(n-(n-1)) + f(n-n) f(n-1) = f(n-2) + f(n-3) + ... + f(n-(n-1)) + f(n-n) 。 所以f(n) = 2*f(n-1)。 class Solution { public: int jumpFloorII(...原创 2018-08-01 14:18:26 · 1410 阅读 · 1 评论 -
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
思路:用位运算来做,与1,第一位保持不变,前面的置0,然后判断,再右移 class Solution { public: int NumberOf1(int n) { int i = 0; int count = 0; for(i = 0;i < 32;i++) { if((n&...原创 2018-08-03 14:48:38 · 429 阅读 · 0 评论 -
两个栈实现队列
思路:stack1 为数据存放的栈,stack2为数据操作的栈, 进栈全部放入stack1,出栈的时候,依次把stack1.top放入stack2,然后剩下最后一个的时候,作为返回的值,然后再pop掉, 然后再把stack2中的数据再存放进stack1中 class Solution { public: void push(int node) { stack...原创 2018-08-03 15:38:58 · 94 阅读 · 0 评论