随笔分类 -  剑指offer

上一页 1 2 3 4 下一页
剑指offer-面试题53_1-在排序数组中查找数字-二分查找
摘要:/* 题目: 统计一个数字在排序数组中出现的次数。 */ /* 思路: 1、从前往后遍历,时间复杂度O(n)。 2、二分查找到目标数字target,向前向后遍历,时间复杂度O(n)。 3、利用二分法,递归找到数字出现的第一个位置和最后一个位置,时间复杂度O(logn)。 */ #include<io 阅读全文
posted @ 2019-12-23 20:49 笨宝宝 阅读(191) 评论(0) 推荐(0)
剑指offer-面试题52-两个链表的第一个公共节点-链表
摘要:/* 题目: 求两个链表的第一个公共节点。 */ /* 思路: 见代码。 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<map> using namespace std; s 阅读全文
posted @ 2019-12-20 21:11 笨宝宝 阅读(142) 评论(0) 推荐(0)
剑指offer-面试题51-数组中的逆序对-归并排序
摘要:/* 题目: 求给定数组的逆序对数。 */ /* 思路: 归并排序。 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<map> using namespace std; int 阅读全文
posted @ 2019-12-20 20:35 笨宝宝 阅读(167) 评论(0) 推荐(0)
剑指offer-面试题49-丑数-空间换时间
摘要:/* 题目: 求从1开始的第n个丑数。 */ /* 思路: 按顺序列出各个丑数。 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<map> using namespace st 阅读全文
posted @ 2019-12-17 21:19 笨宝宝 阅读(198) 评论(0) 推荐(0)
剑指offer-面试题50-第一个只出现一次的字符-哈希表
摘要:/* 题目: 求字符串第一个只出现一次的字符。 */ /* 思路: 使用map遍历两次,第一次计数,第二次找到计数为1的第一个字符。 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> #inclu 阅读全文
posted @ 2019-12-17 19:17 笨宝宝 阅读(129) 评论(0) 推荐(0)
剑指offer-面试题48-最长不含重复字符的子字符串-动态规划
摘要:/* 题目: 最长不含重复字符的子字符串。 */ /* 思路: f(i) = f(i-1) + 1,(未出现过当前字符,distance > f(i-1) distance,当前字符和上一次出现该字符的距离 */ #include<iostream> #include<cstring> #inclu 阅读全文
posted @ 2019-12-16 21:12 笨宝宝 阅读(206) 评论(0) 推荐(0)
剑指offer-面试题47-礼物的最大价值-动态规划
摘要:/* 题目: 给定一个m*n的棋盘,每格放一个礼物(每个礼物的值大于0), 从左上角出发,向下或向右走到达右下角,得到的礼物和最大。 */ /* 思路: f(i,j)=max[f(i-1,j),f(i,j-1)] + a[i,j] */ #include<iostream> #include<cst 阅读全文
posted @ 2019-12-16 19:58 笨宝宝 阅读(207) 评论(0) 推荐(0)
剑指offer-面试题46-把数字翻译成字符串-动态规划
摘要:/* 题目: 给定一个数字,将0~25依次翻译为a~z,计算有多少种翻译方法。 */ /* 思路: 动态规划法 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> using namespace s 阅读全文
posted @ 2019-12-12 20:36 笨宝宝 阅读(231) 评论(0) 推荐(0)
剑指offer-面试题45-把数组排成最小的数-规律
摘要:/* 题目: 给定一个int数组,返回数组中各数字排成的最下字符串。 */ /* 思路: 比较两个数字之间的先后顺序,谁排在前面更小,从而对数组进行排序,得到结果。 两个数字先后顺序的比较方法:两个数字连接,比较两种连接方式得到的字符串哪个大。 */ #include<iostream> #incl 阅读全文
posted @ 2019-12-12 19:58 笨宝宝 阅读(278) 评论(0) 推荐(0)
剑指offer-面试题43-1~n整数中1出现的次数-归纳法
摘要:/* 题目: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数? 为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。 ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数( 阅读全文
posted @ 2019-12-10 22:53 笨宝宝 阅读(165) 评论(0) 推荐(0)
剑指offer-面试题44-数字序列中某一位的数字-脑筋急转弯
摘要:/* 题目: 数字以0123456789101112131415…的格式序列化到一个字符序列中。 在这个序列中,第5位(从0开始计数,即从第0位开始)是5,第13位是1,第19位是4,等等。 请写一个函数,求任意第n位对应的数字。 */ #include<iostream> #include<str 阅读全文
posted @ 2019-12-10 21:22 笨宝宝 阅读(238) 评论(0) 推荐(0)
剑指offer-面试题42-连续子数组的最大和-动态规划
摘要:/*题目; 输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。 要求时间复杂度为O(n)。 先输入数组的格式,再依次输入数组的值。*//*思路: f(i) = pData[i](i=0或f(i-1)<0),f(i-1)+pData[i](f(i-1)>0且i!=0) 阅读全文
posted @ 2019-12-04 21:13 笨宝宝 阅读(178) 评论(0) 推荐(0)
剑指offer-面试题41-数据流中的中位数-堆
摘要:/* 题目: 链接:https://www.nowcoder.com/questionTerminal/9be0172896bd43948f8a32fb954e1be1 来源:牛客网 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。 如果从数 阅读全文
posted @ 2019-12-04 20:18 笨宝宝 阅读(171) 评论(0) 推荐(0)
剑指offer-面试题40-最小的k个数-最大堆
摘要:/* 题目: 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 */ /* 思路: 利用最大堆,C++中使用multiset<int,greater<int>>。 当multiset中的值的个数小于K,则insert。 当大于 阅读全文
posted @ 2019-12-03 21:53 笨宝宝 阅读(273) 评论(0) 推荐(0)
剑指offer-面试题40-最下的k个数-快速排序
摘要:/* 题目: 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 */ /* 思路: 快速排序,找到第k+1大的数,其左边则为最小的k个数。 */ #include<iostream> #include<string.h> #i 阅读全文
posted @ 2019-12-03 21:28 笨宝宝 阅读(134) 评论(0) 推荐(0)
剑指offer-面试题39-数组中出现次数超过一半的数字-抵消法
摘要:/* 题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 */ /* 思路: 数组中出现次数超过数组长度的一半的值为target, 阅读全文
posted @ 2019-12-03 20:27 笨宝宝 阅读(183) 评论(0) 推荐(0)
剑指offer-面试题39-数组中出现次数超过一半的数字-快速排序
摘要:/* 题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 */ /* 思路: 转化为快排中,第n/2大的数字。 验证该数字是否超过 阅读全文
posted @ 2019-12-03 20:15 笨宝宝 阅读(187) 评论(0) 推荐(0)
剑指offer-拓展训练-N皇后的问题-全排列
摘要:/* 题目: N皇后的问题。 */ /* 思路: 全排列。 声明一个具有N个元素的数组curr,每个下标i(0>i>n)代表行,每个curr[i]代表列,所以初始化为curr[i] = i。 此时,各皇后既不在一行也不在一列,只需解决对角线的问题。 当|i-j|==|curr[i]-curr[j]| 阅读全文
posted @ 2019-12-02 20:39 笨宝宝 阅读(182) 评论(0) 推荐(0)
剑指offer-拓展训练-字符的所有组合-全组合
摘要:/* 题目: 给定不含重复字符字符串的全组合。 */ /* 思路: 递归法。 例给定abc,输出的组合长度为1,2,3. 对于长度为2的组合,分选择a(ab,ac)和不选择a的情况(bc)。 选择a,则在剩余字符串中选择长度为1的字符组合; 不选择a,则在剩余字符串中选择长度为2的字符组合。 */ 阅读全文
posted @ 2019-12-01 16:07 笨宝宝 阅读(183) 评论(0) 推荐(0)
剑指offer-面试题38-字符串的排列-全排列
摘要:/* 题目: 输入字符串,打印字符串的所有排列。 输入acc,输出[acc, cac, cca]。 */ /* 思路: 将字符串看作两部分,第一个字符串和后面的部分。 将第一个字符串与后面字符串依次交换。求后面部分的全排列。 进入递归,将第二个字符串与后面的字符串依次交换,求后面部分的全排列。 .. 阅读全文
posted @ 2019-12-01 14:04 笨宝宝 阅读(351) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页