- 博客(22)
- 收藏
- 关注
原创 LintCode 返回 570. 寻找丢失的数 II(C++)
描述中文English给一个由 1 - n 的整数随机组成的一个字符串序列,其中丢失了一个整数,请找到它。n <= 30数据保证有且仅有唯一解您在真实的面试中是否遇到过这个题?样例样例1输入: n = 20 和 str = 19201234567891011121314151618输出: 17解释:19’20’1’2’3’4’5’6’7’8’9’10’11’12’13’14’15’16’18样例2输入: n = 6 和 str = 56412输出: 3解释:5’6’4
2020-06-01 22:05:42
213
原创 vivo2020届在线编程考试—手机屏幕解锁模式(C++)
现有一个 3x3 规格的 Android 智能手机锁屏程序和两个正整数 m 和 n ,请计算出使用最少m 个键和最多 n个键可以解锁该屏幕的所有有效模式总数。其中有效模式是指:1、每个模式必须连接至少m个键和最多n个键;2、所有的键都必须是不同的;3、如果在模式中连接两个连续键的行通过任何其他键,则其他键必须在模式中选择,不允许跳过非选择键(如图);4、顺序相关,单键有效(这里可能跟部分手机不同)。输入:m,n代表允许解锁的最少m个键和最多n个键输出:满足m和n个键数的所有有效模式的总数
2020-05-27 17:02:08
795
原创 剑指offer—数组中的逆序对(C++归并求逆序对)
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,size<=2*10^5示例1输入1,2,3,4,5,6,7,0输出7暴力求解时间复杂度为o(n^2
2020-05-26 23:28:33
178
原创 剑指office 面试题34:二叉树中和为某一值的路径(C++回溯)
题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。例:(这个箭头咋弄??? 就当有吧。。。) 10 5 12 4 7 路径和为22输出为: 10 5 7 10 12思路采用前序遍历+回溯算法/*struct TreeNode { int val; struct TreeNode *left; struct
2020-05-23 14:36:10
137
原创 LintCode 77. 最长公共子序列(C++ 动态规划)
从暴力搜索到递归,暴力搜索超时,主要用于找寻递归式,即动态规划的表达式class Solution {public: /** * @param A: A string * @param B: A string * @return: The length of longest common subsequence of A and B */ //两个指针分别指向两个数组, //当元素相等时,子序列长度加1,且两个指针均后移 /
2020-05-19 16:53:23
146
原创 字节跳动2018校招后端方向—手串问题(C++)
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 64M,其他语言128M作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在任意连续m个串珠中出现
2020-05-15 23:06:43
321
原创 商旅问题TSP——动态规划(c++ 动态规划)
1.定义 TSP问题(旅行商问题)是指旅行家要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的路程最短。本文以2019字节跳动春招笔试第5题,毕业旅行问题为例:小明目前在做一份毕业旅行的规划。打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。由于经费有限,希望能够通过合理的路线安排尽可能的省一些路上的花销。给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销。输入描述:城市个数n(1<
2020-05-13 22:35:24
2563
1
原创 Lintcode 1746. 二叉搜索树结点最小距离(C++ 递归)
描述给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。The size of the BST will be between 2 and 100.The BST is always valid, each node’s value is an integer, and each node’s value is different.样例Example 1:Input: root = {2,1}Output: 1Explanation:Note that root is
2020-05-11 19:42:29
122
原创 LintCode 1524. 在二叉搜索树中查找(C++递归)
描述给定一颗二叉搜索树和 value.返回这棵树中值等于 value 的节点. 如果不存在这样的节点, 返回 null.样例样例 1:输入: value = 24/ 2 7/ 1 3输出: 节点 2样例 2:输入: value = 54/ 2 7/ 1 3输出: null/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNod
2020-05-11 19:19:55
127
1
原创 LintCode 822. 相反的顺序存储(C++ 递归)
题目比较简单,要注意删除元素的方法描述给出一个链表,并将链表的值以倒序存储到数组中。您不能改变原始链表的结构。ListNode 有两个成员变量:ListNode.val 和 ListNode.next样例样例1输入: 1 -> 2 -> 3 -> null输出: [3,2,1]样例2输入: 4 -> 2 -> 1 -> null输出: [1,2,4]/** * Definition of singly-linked-list: * class
2020-05-09 22:46:14
96
原创 LintCode 18 子集II 递归解法(C++ 递归)
算法和我的上一篇博客LintCode 17 子集 非递归解法(C++ 递推)相同LintCode 17 子集 非递归解法(C++ 递推)这里采用递归方法求解描述给定一个可能具有重复数字的列表,返回其所有可能的子集。子集中的每个元素都是非降序的两个子集间的顺序是无关紧要的解集中不能包含重复子集样例样例 1:输入:[0]输出:[[],[0]]样例 2:输入:[1,2,2]输出:[[2],[1],[1,2,2],[2,2],[1,2],[]]class So
2020-05-09 13:27:44
137
原创 LintCode 17 子集 非递归解法(C++ 递推)
描述给定一个含不同整数的集合,返回其所有的子集。子集中的元素排列必须是非降序的,解集必须不包含重复的子集。样例样例 1:输入:[0]输出:[[],[0]]样例 2:输入:[1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]class Solution {public: /** * @param nums: A set of numbers * @return: A list of
2020-05-09 12:24:53
152
原创 LintCode 575字符串分解(C++正则表达式)
描述给出一个表达式 s,此表达式包括数字,字母以及方括号。在方括号前的数字表示方括号内容的重复次数(括号内的内容可以是字符串或另一个表达式),请将这个表达式展开成一个字符串。数字只能出现在“[ ]”前面。您在真实的面试中是否遇到过这个题?样例样例1输入: S = abc3[a]输出: “abcaaa”样例2输入: S = 3[2[ad]3[pf]]xyz输出: “adadpfpfpfadadpfpfpfadadpfpfpfxyz”#include<iostream>#in
2020-05-08 22:24:30
125
原创 LintCode 809. 第K个语法符号(C++递归)
这个题LintCode上题目貌似替代的时候说反了,我更正了。。。。。描述在第一行,我们写一个0。现在在之后的每一行,我们观察之前一行并且用01替换出现的0,用10替换出现的1。给出行号N和索引K,返回N行K-th索引的符号。(K的值为1-indexed)(1 indexed)。1.N是一个[1,30]区间的整数。2.K是一个[1,2^(N-1)]区间的整数。样例样例 1:输入:N = 1, K = 1输出:0解释:行 1: 0样例 2:输入:N = 2, K = 1输出:1解释
2020-05-08 20:46:09
156
原创 LintCode1593. 根据前序和后序遍历构造二叉树(C++递归)
返回与给定的前序和后序遍历匹配的任何二叉树。pre 和 post 遍历中的值是不同的正整数。1 <= pre.length == post.length <= 30pre[]和 post[] 都是 1, 2, …, pre.length 的排列每个输入保证至少有一个答案。如果有多个答案,可以返回其中一个。样例样例 1:输入:pre = [1,2,4,5,3,6,7], post = [4,5,2,6,7,3,1]输出:[1,2,3,4,5,6,7]解释:1/ 2 3
2020-05-08 18:21:34
172
原创 LintCode371. 用递归打印数字(C++)
用递归的方法找到从1到最大的N位整数。用下面这种方式去递归其实很容易:recursion(i) {if i > largest number:returnresults.add(i)recursion(i + 1)}但是这种方式会耗费很多的递归空间,导致堆栈溢出。你能够用其他的方式来递归使得递归的深度最多只有 N 层么?样例 1:输入 : N = 1输出 :[1,2,3...
2020-05-08 14:34:54
273
原创 2019字节跳动---特征提取(C++)
小明是一名算法工程师,同时也是一名铲屎官。某天,他突发奇想,想从猫咪的视频里挖掘一些猫咪的运动信息。为了提取运动信息,他需要从视频的每一帧提取“猫咪特征”。一个猫咪特征是一个两维的vector<x, y>。如果x_1=x_2 and y_1=y_2,那么这俩是同一个特征。因此,如果喵咪特征连续一致,可以认为喵咪在运动。也就是说,如果特征<a, b>在持续帧里出现,那么它将...
2020-05-08 10:26:00
495
原创 1648. 最大子串
给定字符串s,按字典顺序返回s的最后一个子字符串。样例例 1:输入: “abab”输出: “bab”解释: s的子串为 [“a”, “ab”, “aba”, “abab”, “b”, “ba”, “bab”].其中字典序最后的子串为 “bab”.例 2:输入: “baca”输出: “ca”注意事项1 <= s.length <= 4 * 10^4s仅包含小写英文...
2020-05-07 17:22:05
153
原创 1359. 有序数组转换为二叉搜索树(C++递归)
描述给定一个数组,其中元素按升序排序,将其转换为高度平衡的BST。对于这个问题,高度平衡的二叉树被定义为二叉树,其中每个节点的两个子树的深度从不相差超过1。您在真实的面试中是否遇到过这个题?样例样例 1:输入: [-10,-3,0,5,9],输出: [0,-3,9,-10,#,5],解释:针对该数组的其中一个解为 [0,-3,9,-10,null,5], 其对应的平衡BST树如下...
2020-05-06 19:44:45
145
原创 1047. Special Binary String(C++递归)
描述中文English特殊的二进制序列是具有以下两个性质的二进制序列:0 的数量与 1 的数量相等。二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前一个字符。)在任意次...
2020-05-06 15:34:55
105
原创 LintCode 246. 二叉树的路径和 II(C++回溯法)
246. 二叉树的路径和 II(C++回溯法)初学回溯,费了好半天时间,加油!!!!!!!!/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this-...
2020-05-05 20:06:43
149
原创 LintCode880---字符串创建二叉树(C++)
LintCode880—字符串创建二叉树(C++)<第一次记录代码,如有错误欢迎指正>你需要根据一个由括号和整数组成的字符串中构造一颗二叉树。输入的整个字符串表示一个二叉树。它包含一个整数,以及其后跟随的0~2对括号。该整数表示根的值,而一对括号里的字符串代表一个具有相同结构的子二叉树。如果一个节点含有子节点,你应该先构造它的左子节点。/*你需要根据一个由括号和整数组成的字...
2020-05-05 13:32:26
865
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人