10 2020 档案
剑指offer:数组中出现次数超过一半的数字
摘要:题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 示例1 输入 [1,2,3,2,2,2,5,4,2] 返回值 2 class 阅读全文
posted @ 2020-10-30 09:01 曹婷婷 阅读(65) 评论(0) 推荐(0) 编辑
剑指offer12:矩阵中的路径
摘要:题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 矩阵中包含一条字符串"bcced"的路径,但是矩阵中 阅读全文
posted @ 2020-10-28 21:54 曹婷婷 阅读(65) 评论(0) 推荐(0) 编辑
剑指offer(62):孩子们的游戏(圆圈中最后剩下的数)约瑟夫环问题
摘要:题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任 阅读全文
posted @ 2020-10-26 21:30 曹婷婷 阅读(77) 评论(0) 推荐(0) 编辑
剑指offer41:数据流中的中位数
摘要:题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数 直接排序 阅读全文
posted @ 2020-10-24 22:02 曹婷婷 阅读(83) 评论(0) 推荐(0) 编辑
剑指offer56:数组中只出现一次的数字
摘要:题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路:对于这个题目是没有较好的思路的,只能想到遍历然后利用map计数的方法。 看了书上的解释才学到了利用异或的方法进行计算 Tips: 1. 两个相同的数异或值为0 2. 如果数组中除一个数字外, 阅读全文
posted @ 2020-10-23 09:30 曹婷婷 阅读(61) 评论(0) 推荐(0) 编辑
不用加减乘除做加法
摘要:题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:两个数的和为Si = Xi 异或 Yi 异或 Ci(Ci为进位),异或我们可以用^来计算,如果计算进位,以及计算完进位之后如何再继续计算是我遇到的问题。 1.求两个数的异或值 2.两个数相与,再左移一位就 阅读全文
posted @ 2020-10-22 09:12 曹婷婷 阅读(73) 评论(0) 推荐(0) 编辑
C/C++语言中的int所能表示的最大值最小值
摘要:<limits.h>中有INT_MAX和INT_MIN的宏定义可直接使用。 或者自行宏定义 #define INT_MAX 0x7fffffff #define INT_MIN 0x80000000 阅读全文
posted @ 2020-10-18 21:19 曹婷婷 阅读(890) 评论(0) 推荐(0) 编辑
剑指offer 15:二进制中1的个数
摘要:题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 复杂解法:手动计算二进制,然后计算1的个数,这里要注意负数的计算, class Solution { public: int NumberOf1(int n) { if(n==0) return 0; if(n == 阅读全文
posted @ 2020-10-18 21:01 曹婷婷 阅读(73) 评论(0) 推荐(0) 编辑
剑指offer33:二叉搜索树的后序遍历序列
摘要:题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 该题目两个隐藏的知识点: 1. 二叉搜索树(即二叉排序树)中序遍历序列即为该序列的一个有序序列,相当于题目中给出了一个中序遍历序列和一个后序遍 阅读全文
posted @ 2020-10-16 20:58 曹婷婷 阅读(123) 评论(0) 推荐(0) 编辑
剑指offer31:栈的压入弹出序列
摘要:题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 阅读全文
posted @ 2020-10-15 21:17 曹婷婷 阅读(77) 评论(0) 推荐(0) 编辑
剑指offer:包含min函数的栈
摘要:题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 、 class Solution { public: stack<int> s; stack<int> minS; void push(int value) { if(s.empty() 阅读全文
posted @ 2020-10-13 20:58 曹婷婷 阅读(81) 评论(0) 推荐(0) 编辑
剑指offer50拓展:字符流中第一个不重复的字符
摘要:题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 思路:本题目 阅读全文
posted @ 2020-10-12 21:54 曹婷婷 阅读(93) 评论(0) 推荐(0) 编辑
剑指 Offer 61. 扑克牌中的顺子
摘要:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5]输出: True 示例 2: 输入: [0,0,1,2,5]输出: Tr 阅读全文
posted @ 2020-10-11 22:24 曹婷婷 阅读(113) 评论(0) 推荐(0) 编辑


点击右上角即可分享
微信分享提示