
刷题
面试题
爱上小公举
希望明天的我
仍然对不同充满宽容
继续对未知饱含敬畏
展开
-
MP3光标位置
题目描述 :MP3Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。现在要实现通过上下键控制光标移动来浏览歌曲列表,控制逻辑如下: 歌曲总数<=4的时候,不需要翻页,只是挪动光标位置。 光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲;光标在最后一首歌...原创 2019-12-01 01:10:37 · 320 阅读 · 0 评论 -
C语言中关于二级指针的一道笔试题
C语言中关于二级指针的一道笔试题如下代码int main(){ char* c[] = { "ENTER","NEW","POINT","FIRST" }; char** cp[] = { c + 3,c + 2,c + 1,c }; char*** cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *--*++cpp...原创 2019-05-28 17:13:13 · 548 阅读 · 0 评论 -
最近公共祖先
语言: C++题目描述 :有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个结点a,b。请设计一个算法,求出a和b点的最近公共祖先的编号。给定两个int a,b。为给定结点的编号。请返回a和b的最近公共祖先的编号。注意这里结点本身也可认为是其祖先。测试样例:输入2 3返回 1给定接口class LCA {pub...原创 2019-11-17 21:26:17 · 168 阅读 · 0 评论 -
计算n x m的棋盘格子, 沿着各自边缘线从左上角走到右下角,总共有多少种走法. 要求不能走回头路,即:只能往右和往下走,不能往左和往上走。
语言C++题目 :[编程题]201301 JAVA 题目2-3级题目描述 :请编写一个函数(允许增加子函数),计算nxm的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。输入描述:输入两个正整数输出描述:返回结果示例: 输入...原创 2019-11-15 19:47:00 · 3977 阅读 · 1 评论 -
翻转二叉树以匹配先序遍历
语言: C++题目描述 :给定一个有 N 个节点的二叉树,每个节点都有一个不同于其他节点且处于 {1, ..., N} 中的值。通过交换节点的左子节点和右子节点,可以翻转该二叉树中的节点。考虑从根节点开始的先序遍历报告的 N 值序列。将这一 N 值序列称为树的行程。(回想一下,节点的先序遍历意味着我们报告当前节点的值,然后先序遍历左子节点,再先序遍历右子节点。)我们的目标...原创 2019-11-14 21:38:02 · 288 阅读 · 0 评论 -
最小栈(最大栈)
最小栈最大栈与最小栈实现思路一模一样, 就连代码也只需要将<=改为>=号, 所以就只写个最小栈, 绝对不是因为最大栈LeetCode要会员题目描述 :设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。pop()-- 删除栈顶的元素。top()-- 获取栈顶元素。getMin() --...原创 2019-10-24 10:44:15 · 1136 阅读 · 0 评论 -
二叉树的层次遍历
二叉树的层次遍历题目描述 :给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]来源:力扣(LeetCode)...原创 2019-10-23 21:39:31 · 317 阅读 · 0 评论 -
二叉树的后序遍历(非递归)
二叉树的后序遍历题目描述 :后序遍历(Postorder Traversal)——访问根结点的操作发生在遍历其左右子树之后。给定一个二叉树,返回它的 后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [3,2,1]来源:力扣(LeetCode)OJ链接相关:二叉树的前序遍历(非递归)二叉树的...原创 2019-10-23 21:28:18 · 591 阅读 · 0 评论 -
二叉树的中序遍历(非递归)
二叉树的中序遍历题目描述:中序遍历(Inorder Traversal)——访问根结点的操作发生在遍历其左右子树之中(间)。给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]来源:力扣(LeetCode)OJ链接相关:二叉树的前序遍历(非递归)二叉树的后序遍历...原创 2019-10-23 21:15:19 · 2411 阅读 · 0 评论 -
二叉树的前序遍历(非递归)
二叉树的前序遍历题目描述 :给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,2,3]来源:力扣(LeetCode)OJ链接相关:二叉树的中序遍历(非递归)二叉树的后序遍历(非递归)二叉树的层序遍历(非递归)分析:非递归前序遍历只需要将右孩子入栈, 遍历...原创 2019-10-23 21:02:37 · 863 阅读 · 0 评论 -
C++实现一个只能在堆(栈)上生成对象的类
目录只能在堆上生成对象的类只能在栈上生成对象的类在C++中,类的对象创建可以静态创建在栈区, 如A a;还可以动态创建在堆区,如A* ptr=new A;这两种方式是不同的, 具体来静态建立一个类的对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。动态建立类对象...原创 2019-10-23 11:44:53 · 1881 阅读 · 0 评论 -
C语言中关于二级指针的笔试题
C语言中关于二级指针的笔试题int main(){ char* str[] = { "welcome","to","Fortemedia","Nanjing" }; char** p = str + 1; str[0] = (*p++) + 2; str[1] = *(p + 1); str[2] = p[1] + 3; str[3] = p[0] + (str[2] - s...原创 2019-05-29 00:55:38 · 1302 阅读 · 1 评论 -
反转字符串二, 给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转...
反转字符串二题目描述:给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"来源:力扣(LeetCode)OJ链接...原创 2019-10-19 18:26:45 · 727 阅读 · 0 评论 -
反转字符串
反转字符串题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e",...原创 2019-10-19 16:56:29 · 167 阅读 · 0 评论 -
验证回文串
验证回文串题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false来源:力扣(LeetCode)OJ链接分析:最简单的...原创 2019-10-18 22:17:53 · 238 阅读 · 0 评论 -
在每个树行中找最大值
在每个树行中找最大值题目描述:前序遍历(Preorder Traversal 亦称先序遍历)——访问根结点的操作发生在遍历其左右子树之前。需要在二叉树的每一行中找到最大的值。示例:输入: 1 / \ 3 2 / \ \ 5 3 9输出: [1, 3, 9]...原创 2019-10-18 17:08:43 · 229 阅读 · 0 评论 -
字符串中的第一个唯一字符
字符串中的第一个唯一字符题目描述:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.来源:力扣(LeetCode)OJ链接分析 :字符型变量只有256个, 因为char型变量只有1字节, 所以, 可以创建一个256个元素的标记数组,...原创 2019-10-17 16:32:51 · 127 阅读 · 0 评论 -
字符串相加
字符串相加要求:给定两个字符串形式的非负整数num1 和num2,计算它们的和。注意:num1 和num2的长度都小于 5100.num1 和num2 都只包含数字0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库,也不能直接将输入的字符串转换为整数形式。来源:力扣(LeetCode)OJ链接分析:这道题好在...原创 2019-10-17 11:06:24 · 339 阅读 · 0 评论 -
把字符串转换成整数
把字符串转换成整数分析:思路: 字符串从后往前遍历, 遇到不是数字的字符则跳出返回0(除非遇到的是第一个代表正负的字符), 遇到数字字符则相加, 每次都加到数字的最高位, 值得注意的是, 不能超过int的范围, 超过范围也返回0, int的范围是 -2147483648 ~2147483647Oj链接class Solution {public: int St...原创 2019-10-17 02:21:59 · 170 阅读 · 0 评论 -
根据输入的日期,计算是这一年的第几天
根据输入的日期,计算是这一年的第几天分析:思路比较简单, 从这一年的开始一直加到这一天, 注意闰年二月是29天OJ链接#include<iostream>using namespace std;class Solution {public:int fun(int year, int month, int day) { int Month1[12] ...原创 2019-10-17 01:23:19 · 1264 阅读 · 0 评论 -
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)分析:不能用乘除法, 就只能用加减法, 位运算, 逻辑运算不能用for、while、if、else、switch、case及条件判断语句, 意味着不能用循环, 不能有判断1加到n如不用循环的话很明显应该要用递归, 但递归跳出条件也需要判断,...原创 2019-10-17 00:05:03 · 401 阅读 · 0 评论