
面试题目
lixiaoqi123
希望实现更好的自己
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最短字符编码
给定一个非空字符串, 按照如下方式编码, 使得编码后长度最小, 返回编码后的长度: 编码规则为: k[encoding_string], 表示重复k次encoding_strng, 例如'abcdefabcdefabc'可表示为'2[abcdef]abc', 但是'aaa'仅能编码成'aaa', 因为len('3[a]')>len('aaa').补充:1. k为正整数, ...原创 2018-08-27 14:59:11 · 2938 阅读 · 0 评论 -
输入一系列数字,计算每个数字出现的次数
程序如下:#include<iostream>using namespace std;int main(){ int currval=0, val=0; //currval is the number that we are counting and val is number we enter now //reader the first number ...原创 2018-07-26 10:11:50 · 7494 阅读 · 0 评论 -
被3整除
链接:https://www.nowcoder.com/questionTerminal/51dcb4eef6004f6f8f44d927463ad5e8?toCommentId=1235333来源:牛客网题目:小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。并且小Q对于能否被3整除这个性质很感兴趣。小Q现在希望你能帮...原创 2018-08-17 16:22:12 · 490 阅读 · 0 评论 -
剑指offer--二维数组查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。1、二分查找的过程中,会产生一棵二叉判定树,二叉判定树的特点就是,左子树小于根节点,右子树大于根节点。利用这个性质,我们可以将二维数组模拟成一个二叉判定树,此时就需要找出根节点,使得左子树小于...原创 2018-08-17 17:40:50 · 264 阅读 · 0 评论 -
[剑指offer] 替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。两个解决方案:分配的空间足够时,在原来的字符串上做替换;分配空间不够时,需要 创建新的字符串并在新的字符串上做替换。 1、常见思路:从前到后遍历,遇到空格的时候就替换,由于必须将一个字符替换为三个字符,必须将后...原创 2018-08-18 17:19:34 · 136 阅读 · 0 评论 -
[剑指offer] 从尾到头打印链表
题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路1:借助栈第一个遍历到的结点最后一个输出,而最后一个遍历到的结点第一个输出。典型的“后进先出”,我们可以使用栈来实现这种顺序。每经过一个结点的时候,把该结点放到栈中。当遍历完整个链表后,再从栈顶开始逐个输出结点的值,此时输出的结点的顺序已经反转过来了。/*** struct ListNode {* ...原创 2018-08-18 18:15:37 · 183 阅读 · 0 评论 -
[剑指offer] 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:根据前序遍历(根-左-右)和中序遍历(左-根-右)的特点,该题可以分为以下步骤:1、根据前序遍历找到根节点2、在中序遍历中找到...原创 2018-08-19 17:21:38 · 149 阅读 · 0 评论 -
[剑指offer]用两个堆栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路:首先需要了解栈和队列两种结构的性质。queue是一种”先进先出”的数据结构,他在对尾插入元素,在队头删除元素,他既可以取到自己的队头元素,也可以取到自己的队尾元素; stack是一种”先进后出”的数据结构,他对元素的插入和删除都是在栈顶完成的;他不可以取自己栈底的元素;只能去取自己栈...原创 2018-08-20 14:30:54 · 580 阅读 · 0 评论 -
[剑指offer] 旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题方法一:暴力查找 非递减数组旋转之后最小值,也就是寻找分界点,分界点前后都是非递减数组,分...原创 2018-08-22 13:46:04 · 171 阅读 · 0 评论 -
[剑指offer] 斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=391、最常见的递归算法,复杂度太高O(k^n)//递归 --会做大量冗余计算 class Solution {public: int Fibonacci(int n) { if(n==0) { return...转载 2018-08-24 13:12:06 · 166 阅读 · 0 评论 -
[剑指offer] 矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路:假设现在n为8,如下图所示 当第一个矩形横着放置时,还剩下2*6区域,即f(6)...原创 2018-08-26 16:53:36 · 137 阅读 · 0 评论 -
[剑指offer] 跳台阶
1、题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。解题思路:这个问题是典型的斐波那契数列,只是第一个是1,第二个是2,其他的与上篇一样。令 f(n)f(n) 表示从第一级台阶跳上第 nn 级台阶有几种跳法。则有如下递推公式: f(n)=f(n−1)+f(n−2)代码如下://动态规划...原创 2018-08-26 16:54:22 · 232 阅读 · 0 评论 -
生成0到9的随机排列
生成0到9的随机排列,每一个数据只出现一次,每次运行结果不一样。1、解题思路:利用rand()函数随机生成10个数,然后对其排序,此时的原始数据的下标就是0到9的随机顺序#include<stdio.h>#include<time.h>#include<stdlib.h>void swap(int a[], int i, int j) //交换数...原创 2018-09-20 17:22:24 · 9510 阅读 · 0 评论