刷题ing
文章平均质量分 50
一颗程序媛0915想上岸
越努力,越幸运……
展开
-
lectcode 135.分发糖果2
题目:老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发2、1、2颗糖果。...原创 2019-07-02 21:08:53 · 149 阅读 · 0 评论 -
面试题12:矩阵中的路径
题目:设计一个函数,判断矩阵中是否存在一条包含某字符串的所有路径问题描述:路径可以从矩阵的任意一格开始,每一步可以在矩阵中,向上,下,左,右移动一格,如果一条路经过了矩阵的某一格,那么不能再次访问这个格子列如:矩阵abcdefghi含有字符串abefg代码如下:#include<stdio.h>#include<stdlib.h>#include<stri...原创 2018-11-18 19:59:09 · 138 阅读 · 0 评论 -
面试题11:求旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组末尾,即数组的旋转;例如:{3,4,5,1,2}是{1,2,3,4,5}的一个旋转,输出该数组的最小值1代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>//顺序查找最小值int Order(int *numbers,int index1,原创 2018-11-16 22:02:10 · 97 阅读 · 0 评论 -
面试题10:斐波那契数列
题目:求菲波那切数列的第N项写一个函数,输出第n项的值代码如下:#include<stdio.h>#include<stdlib.h>long long Fibonacci(unsigned n ){ int arr[2]={0,1}; //若小于2,则是自己本身 if(n<2) { return arr[n]; } long long...原创 2018-11-16 21:49:48 · 359 阅读 · 0 评论 -
面试题29:顺时针打印矩阵
一、题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。二、实现分析:假设矩阵的行数为rows,列数为columns,选取左上角位置(start,start)为分析目标,分析可得...原创 2019-01-07 20:55:04 · 133 阅读 · 0 评论 -
面试题15:二进制中1 的个数
一、题目描述:请实现一个函数,输入一个整数,输出该数二进制中表示1的个数,例如,把9表示成二进制1001,有2位是1。因此,如果输入9,则该函数输出2。二、题目分析:二进制数最后一位是1,减一之后,最后一位由1变为0,其他数位保持不变二进制数最后一位是0,假设最右边的一位于第m位,减1之后,第m位由1变0,第m位之后所有0变1,第m位之前数位不变三、实现分析:把一个整数减去1,就是把...原创 2019-01-07 20:24:06 · 166 阅读 · 1 评论 -
面试题20:表示数值的字符串
一、题目描述:实现一个函数用来判断字符串是否表示数值(包括整数和小数以及使用科学计数法表示的数)。二、题目分析:分析:字符串的模式为 A[.[B]][e|EC]或者.B[e|EC]A为整数部分,B紧跟着小数点为数值的小数部分,C为指数部分(如果一个数没有整数部分,则小数部分不能为空)例如:字符串"+100"、"-123",“3.1416”,"5e2"以及“-1E-16都是数值“12e...原创 2018-12-08 16:09:40 · 132 阅读 · 2 评论 -
面试题21:调整数组顺序使奇数位于偶数前面
一、问题描述;输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,二、解题思想:1.分别有两个指针从前后进行遍历2.前指针为pBegin,后指针为pEnd3.当* pBegin为奇数 ,pBegin++ ,当 *pEnd为偶数,pEnd– —4. 当 * pBegin为偶且 *pEnd奇数时交换两个数的值5.判...原创 2018-12-08 11:56:51 · 132 阅读 · 0 评论 -
面试题17:打印从1到最大的n位数
一、题目:输入数字n,按顺序打印从1到最大的n位的十进制数。比如输入3,则打印出1、2、3一直到最大的3位数9991.1 解法两种不同的方法解决这个问题:1、是字符串上模拟数字加法,用字符串表达大数2、使用全排列递归调用二、字符串上模拟加法2.1 思想:用字符串表示数字时,字符串里的每一个字符都是0-9之间的某一个字符,用来表示数字的其中一位,数字最大是n位,我们用一个长度为n+1...原创 2018-12-02 17:28:36 · 372 阅读 · 0 评论 -
面试题4:替换空格
题目:实现一个函数,把字符串中的每个空格都替换成20%;例如:输入:we are happy,则输出:we%20are%20happy代码如下:#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;#include&amp;lt;string.h&amp;gt;void ReplaceBlank(char string原创 2018-11-16 21:31:17 · 168 阅读 · 0 评论 -
面试题14:剪绳子(动态规划,贪心算法)
一、题目:一根长度为n的绳子,剪成m段,m,n都大于1,且都为整数,每段长度记为k[0],k[1]…,k[m].求k[0]*k[1]…*k[m]可能的最大乘积1.1解法:两种不同的方法解决这个问题,先用常规的需要O(n²)时间和O(n)空间的动态规划,接着用只需要O(1)的时间和空间的贪心算法。二、动态规划:(1)是求最优解问题,如最大值,最小值;(2)该问题能够分解成若干个子问题,并...原创 2018-11-23 22:37:50 · 1451 阅读 · 0 评论 -
面试题4:二维数组的查找
一、题目在一个二维数组中,每一行都按照从左到右递增的顺序排序。每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的一个二维数组和一个整数,判断数组是否含有该整数。二、算法分析一个从左到右,从上到下递增的二维数组,我们可以从数组的左下角或者右上角开始遍历,这样当我们将numbert与遍历的元素做比较后(以右上角为例),如果比number大,剔除所在的列,如果比number小,则剔除所...原创 2018-11-23 23:18:14 · 111 阅读 · 0 评论 -
leetcode 26:删除数组中的重复项
问题描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。...原创 2019-07-01 13:53:07 · 107 阅读 · 0 评论 -
letcode 1: 两数之和
描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...原创 2019-07-06 18:35:03 · 169 阅读 · 0 评论 -
letcode 66:加一
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 43...原创 2019-07-19 11:40:32 · 124 阅读 · 0 评论 -
letcode 283:移动零
问题描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路:用双指针指向数组中前后的值,遇到为0的值。则将后面第一个不为0的值与之交换。代码如下(C++):class...原创 2019-07-19 13:42:20 · 147 阅读 · 0 评论 -
lectcode 27:移除元素
题目描述:给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 n...原创 2019-07-24 09:34:02 · 104 阅读 · 0 评论 -
letcode 605:种花问题
题目描述:假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数n。能否在不打破种植规则的情况下种入n朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n...原创 2019-07-24 12:48:56 · 139 阅读 · 0 评论 -
lectcode 453:最少移动次数使数组元素相等
问题描述:给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]解题思路:n - 1 个元素增...原创 2019-07-21 12:30:09 · 218 阅读 · 0 评论 -
题集(一)
1、int i=0;int a=i++;int b=++a;int c=a+b,则a?b:c的值为 1前置++和后置++的区别,判断时,0为真,1为假2、32位计算环境,定义int *p=new int[10],则sizeof§为 4指向数组的指针恒为4字节3、class定义的类,默认的访问属性为privata结构体默认访问属性为公有的4、已排好序的数组进行查找,时间复杂度为 o(...原创 2019-01-14 15:30:49 · 425 阅读 · 0 评论 -
面试题40:最小的K个数
题目要求输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。题目分析输入n个整数,找出其中最小的K个数在这里我们很容易在主观上默认n>k,从而在讨论k的不合法性时,忘记了k>n的情况,实际上当 k>n 或者 k<=0 那么都将返回空!!!三种解法第一种:用最大堆来实现,主要考虑在数据流...原创 2019-04-15 11:18:46 · 159 阅读 · 0 评论