![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++算法入门题目
abc15766228491
这个作者很懒,什么都没留下…
展开
-
leetcode 2. 两数相加
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 常规做法,新建一个链表,向下添加即...原创 2018-09-01 09:07:14 · 106 阅读 · 0 评论 -
牛客网 剑指offer 4 重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。首先将前序的第一个数字拿出来,这个是二叉树的根,在中序中找到这个数字,将中序分为左右两部分,即为左子树和右子树。再将统计中序分出的左右子树的长度...原创 2018-09-01 12:56:49 · 106 阅读 · 0 评论 -
leetcode 3.无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: “abcabcbb” 输出: 3 解释: 无重复字符的最长子串是 “abc”,其长度为 3。示例 2:输入: “bbbbb” 输出: 1 解释: 无重复字符的最长子串是 “b”,其长度为 1。示例 3:输入: “pwwkew” 输出: 3 解释: 无重复字符的最长子串是 “wke”,其长度为...原创 2018-09-02 16:07:00 · 525 阅读 · 0 评论 -
leetcode 5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: “babad” 输出: “bab” 注意: “aba”也是一个有效答案。示例 2:输入: “cbbd” 输出: “bb”这道题的基本思路是,把输入的字符串中每个字符中间都插入一个这个字符串不可能出现的符号(我用的是空格),就可以解决回文为奇数或者偶数的问题,然后以每一个...原创 2018-09-03 14:11:07 · 85 阅读 · 0 评论 -
牛客网 剑指offer 5 用两个栈实现队列(用两个队列实现栈)
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。栈的特点:先入后出,队列的特点:先入先出,可以用两个栈,在入队列的时候,先入第一个栈,出队列的时候,应该出的是栈尾的元素,因此将第一个栈的元素全部放入第二个栈内(前提是第二个栈为空)然后将第二个栈的栈顶元素就是第一个栈的栈底元素,弹出第二个栈的栈顶元素即可。class Solution{...原创 2018-09-09 17:17:51 · 232 阅读 · 0 评论 -
2018年9月 搜狐畅游笔试 第二题,求第k个数(二进制的应用)
这个题利用二进制位去做即可,可惜当时没想起来,哎。。。太菜,又给母校丢人(这个是我在考试之后做出来的,因此并未提交Oj系统,因此不确定超时和其他特殊情况,虽然理论上应该不超时吧)。。。。晚上一定把这道题整理一下,题目如下:已知一个正整数n(3<=n<=15),将所有n的乘方幂以及所有n的乘方幂(有限个且互不相等)之和组成一个递增序列。例如:当n为4时,该序列为:1,4,5,16,1...原创 2018-09-15 23:35:17 · 348 阅读 · 0 评论 -
leetcode 91. 解码方法
一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: “12” 输出: 2 解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入: “226” 输出: 3 解释: 它可以解码为 “BZ” (2...原创 2018-09-15 23:57:07 · 544 阅读 · 0 评论 -
牛客网 剑指offer 7 斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39这道算是入门编程题了。。。。这里用递推式求解,F(n) = F(n-1) + F(n-2)class Solution {public: int Fibonacci(int n) { int N = n; if(...原创 2018-09-10 09:12:01 · 153 阅读 · 0 评论 -
牛客网 剑指offer 6 旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。方法:设置两个指针,一个指向数组左端为left,一个指向数组右端right,检查中间的元素index=(le...原创 2018-09-12 22:07:40 · 79 阅读 · 0 评论 -
牛客网 头条某编程题。。。
P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。 第一行输入点集的个数 N, 接下来 N 行,每行两个...原创 2018-08-21 18:27:06 · 892 阅读 · 0 评论 -
基于图的图像分割方法(Graph-Based Image Segmentation)源码阅读笔记
这个方法被应用于深度学习目标检测的经典之作selective search方法中(Selective Search for Object Recognition),用于初始化分割区域。。论文题目:《Efficient Graph-Based Image Segmentation》查阅了许多博客,后来感觉,对于这个方法整体还是一知半解,于是花了一个下午阅读了源码,做一个笔记,如有错误,希望大家指...原创 2018-08-31 19:56:05 · 3125 阅读 · 7 评论 -
ccf 201803-2 碰撞的小球
问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。 当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动...原创 2018-07-02 22:36:06 · 156 阅读 · 0 评论 -
剑指offer 1
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:如果从右下角开始,当target < array时,会有两个方向都有可能的情况,左上也一样,因此从右上角开始判断,如果比target大,则向前一列,比target小,向下一行...原创 2018-08-07 07:17:51 · 133 阅读 · 0 评论 -
ccf 201803-3 URL映射
问题描述 URL 映射是诸如 Django、Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件。对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 URL 地址,并将其分派给相应的处理代码。现在,请你来实现一个简单的 URL 映射功能。 本题中 URL 映射功能的配置由若干条 URL 映射规则组成。当一个请求到达时,URL 映射功能...原创 2018-08-12 09:43:34 · 606 阅读 · 0 评论 -
剑指offer字符串学习
#include <iostream>using namespace std;int main() { char str1[]="hello"; char str2[]="hello"; char *str3="hello"; char *str4="hello"; if (str1==str2) cout<<&q原创 2018-08-07 23:30:41 · 115 阅读 · 0 评论 -
牛客网 字符迷阵
注意:本题允许使用C/C++/Java/python进行解答,其他编程语言提交均视作无效处理。字符迷阵是一种经典的智力游戏。玩家需要在给定的矩形的字符迷阵中寻找特定的单词。 在这题的规则中,单词是如下规定的: 1. 在字符迷阵中选取一个字符作为单词的开头; 2. 选取右方、下方、或右下45度方向作为单词的延伸方向; 3. 以开头的字符,以选定的延伸方向,把连续得到的若干字符拼接在一起,...原创 2018-08-16 18:21:55 · 325 阅读 · 0 评论 -
牛客网 剑指offer 替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。本题坑位:注意在向后赋值的时候,空格是不需要赋值的,所以,后面的p2指针要向前再移动一个class Solution {public: void replaceSpace(char *str,int length) {...原创 2018-08-16 18:27:09 · 243 阅读 · 0 评论 -
牛客网 头条某编程题(二)。。。
给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个:区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列 [6 2 1]则根据上述公式, 可得到所有可以选定各个区间的计算值:[6] = 6 * 6 = 36;[2] = 2 * 2 = 4;[1] = 1 * 1 = 1;[6,2] = ...原创 2018-08-22 15:33:07 · 251 阅读 · 0 评论 -
leetcode 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]方法1:构建一个矩阵,矩阵的行和列由这个数组的元素的和组成,如:第1行第2列是nums[0...原创 2018-08-31 10:06:16 · 141 阅读 · 0 评论 -
牛客网 剑指offer 3
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/cl...原创 2018-08-31 11:21:59 · 208 阅读 · 0 评论 -
牛客网 剑指offer 8 跳台阶 变态跳台阶
跳台阶: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路:状态方程为:f(i) = f(i-1) + f(i-2) 说明:f(i)是指青蛙在第i阶台阶的跳的方法,由于一次可以跳1阶或者两阶,因此这一次的跳法是上一次的和上上一次的方法数的和。class Solution {public: ...原创 2018-09-12 22:35:31 · 187 阅读 · 0 评论 -
TF-IDF文本去重学习(TF-IDF和simhash)
鉴于每次面试都会问这个,还是总结一下吧,毕竟没坏处TF-IDF我们是用tf-idf进行文本去重的,其实是用tf-idf将两篇文章的关键词提取处出来,然后比对两篇文章的关键词,大于某个阈值,则判定为两篇文章相似TF为词频,算法为:这个词出现的次数 除以 这个文章的总词数公式如下:IDF为逆文档频率,如果这个词在每篇文章中都有过,那么他的IDF就比较小,可以用它避免那些...原创 2018-09-13 10:07:44 · 2728 阅读 · 1 评论 -
leetcode 205. 同构字符串
给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = “egg”, t = “add”输出: true示例 2:输入: s = “foo”, t = “bar”输出: false示...原创 2018-09-18 19:47:11 · 653 阅读 · 0 评论 -
leetcode 464. 我能赢吗
在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和达到 100 的玩家,即为胜者。如果我们将游戏规则改为 “玩家不能重复使用整数” 呢?例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 >= 100。给定一个整数 maxChoosableInteger (整数池中可选择的最大数)和另...原创 2018-11-10 14:44:21 · 2050 阅读 · 0 评论 -
PTA Data Structures and Algorithms 7-4 List Leaves
本题为陈越老师、何钦铭老师的数据结构课程的作业7-4 List Leaves (25 分)Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test...原创 2019-01-10 15:05:19 · 201 阅读 · 0 评论 -
PTA 数据结构与算法题目:是否同一棵二叉搜索树
本题目为陈越、何钦铭老师的数据结构课后作业7-4 是否同一棵二叉搜索树 (25 分)给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每...原创 2019-01-11 10:31:46 · 462 阅读 · 0 评论 -
PTA 数据结构与算法题目集 7-3 树的同构
学习陈越老师的数据结构课程时的作业7-3 树的同构 (25 分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一...原创 2019-01-10 10:29:14 · 433 阅读 · 0 评论 -
剑指offer 从上往下打印二叉树
题目来源:牛客网剑指Offer在线编程题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。这道题是上下左右顺序遍历二叉树,用队列可以解决,解题思路如下首先建立一个复制队列,在队列里加入这个二叉树的根节点,然后进入循环,循环终止的条件是该队列为空。在循环中,每次取出队列首的元素,将该元素的值加入要返回的vector中,然后弹出队列首的元素,判断该元素的左右子树是否为空,不为空则加入进...原创 2019-03-12 11:27:21 · 121 阅读 · 0 评论 -
剑指Offer 复杂链表的复制
题目如下:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)本题在《剑指offer》里面提供了除了直接复制两种指针之外的两种思路,下面分别讨论第一种:使用一个哈希表存储节点信息,是一种用空间换时间的方法,时间复杂度为O(n)。首先...原创 2019-03-21 23:13:38 · 127 阅读 · 0 评论 -
剑指offer 数组中出现次数超过一半的数字
题目如下:题目描述,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。在《剑指offer》一书中,提供了两种思路,第一种使用快速排序,第二种使用数组本身的特点做,具体方法分别讨论如下:第一种解法,使用快速排序:我们可以使用快速排序,每...原创 2019-03-25 22:21:22 · 648 阅读 · 0 评论 -
剑指offer 二叉搜索树与双向链表
题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。原创 2019-03-23 20:32:04 · 137 阅读 · 0 评论 -
剑指Offer 最小的k个数
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。本题在《剑指offer》中提供了两种解题思路,分别是使用快速排序和使用红黑树,下面分别讨论:第一种:使用快速排序的方法由于我们使用快速排序可以得到第n个位置的数字,并且n左边的数字比n小,n右边的数字比n大,那么如果n=k+1,则将n左边的数字返回即可,这里返回的...原创 2019-03-26 20:47:16 · 270 阅读 · 0 评论 -
PTA 02-线性结构4 Pop Sequence (25 分)
Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the...原创 2018-11-01 10:36:26 · 1691 阅读 · 0 评论 -
关于单链表的反转的学习
最近在学习mooc网上的 陈越、何钦铭 老师的数据结构,在做作业的时候遇到单链表反转问题,于是就拉出来单独了解一下:方法一:用数组下标模拟内存地址,代码如下:/*假设这里的地址不超过99999输入规则: 第一行:链表起始地址(head_position) 链表节点个数(node_num) 后node_num行:本节点地址(position) 节点值(value) 下一个节点的地址(ne...原创 2018-10-30 14:46:09 · 222 阅读 · 0 评论 -
leetcode 121. 买卖股票的最佳时机
买卖股票的最佳时机题目描述提示帮助提交记录社区讨论阅读解答给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 =...原创 2018-09-22 14:16:50 · 111 阅读 · 0 评论 -
剑指offer 11 二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。本题思路:n = n&amp;(n-1)对于n-1的二进制而言,其值为原来的n的二进制的最后一个1变0,后面的0全部变为1。于是,n&amp;(n-1)的结果是去掉了n的最后一个1。代码如下:class Solution {public: int NumberOf1(int n) { i...原创 2018-10-06 10:45:39 · 107 阅读 · 0 评论 -
剑指offer 12 数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。本题两个地方需要注意1、对数字的预处理,比如,0的负数次方等2、提高计算n的m次方的效率对于第一点,注意,如果是 base==0 &amp;&amp; exponent&lt;0 则返回0.0,如果exponent是负数则先计算result = pow(base, -exponen...原创 2018-10-07 16:54:44 · 108 阅读 · 0 评论 -
PTA 01-复杂度2 Maximum Subsequence Sum (25 分)
01-复杂度2 Maximum Subsequence Sum (25 分)Given a sequence of K integers { N1, N2, …, NK }. A continuous subsequence is defined to be { Ni, Ni+1, …, Nj } where 1≤i≤j≤K. The Maximum Subs...原创 2018-10-17 15:41:56 · 848 阅读 · 2 评论 -
PTA 01-复杂度3 二分查找 (20 分)
01-复杂度3 二分查找 (20 分)本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE];...原创 2018-10-17 15:48:11 · 668 阅读 · 0 评论 -
leetcode 416. 分割等和子集
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集....原创 2018-10-17 19:55:37 · 2979 阅读 · 1 评论