刷题
文章平均质量分 51
CC_YXK
这个作者很懒,什么都没留下…
展开
-
整数反转
题目描述: 给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 解题思路: 从整数末尾取一个数依次调整到新...原创 2018-11-06 23:01:06 · 133 阅读 · 0 评论 -
矩阵中的路径(回溯法)
题目描述: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。 解题思路: 我们可以用回溯法解决这个问题。首先在矩阵中任选一个格子作为路径的起点。假设矩阵中某个格子的字符为ch,并且这个格子将对应于路径上的第i...原创 2019-02-20 22:57:10 · 242 阅读 · 0 评论 -
二进制中1的个数
思路:对于一个整数,每次与它减一的数做与运算,总会消除它二进制中最右边的1。因此直到它做与运算到0是的次数即为它二进制中1的个数 # include<iostream> using namespace std; int fun(int n) { int count = 0; while (n) { count++; n = n &(n - 1); } r...原创 2019-03-14 21:15:52 · 136 阅读 · 0 评论 -
数组中重复的数字
思路:我们可以重排这个数组,原则就是将每个数字放在与它下标对应的位置上去,如果发现该下标位置上的数与自己相等,那么说明该数字重复了。因此从0下标开始,将这个下标对应的数字找出来放到该位置。 # include<iostream> # include<vector> using namespace std; int fun(vector<int> arr...原创 2019-03-14 21:57:11 · 151 阅读 · 0 评论 -
判断一个树是否是另一个树的子树
题目描述:输入两棵二叉树A、B,判断B是否是A的子树 思路: 先找到A中与B根节点相同的节点 从该节点递归的判断是否其左右子树都相等 代码: class Solution { public: bool fun(TreeNode* pRoot1, TreeNode* pRoot2) { if(pRoot2 == NULL) { ...原创 2019-03-15 20:52:29 · 561 阅读 · 0 评论 -
大整数相乘
题目描述:有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。 思路分析:根据我们手算的规则 定义一个新的字符串来表示结果,新的字符串长度为想成的两个字符串之和 将第二个数从右到左每一位与第一个数计算,将计算的结果加到新字符串的合适位置。注意:计算的时候要保存上一次计算的进位数。 维护一个移位数,第二个字符串每算完一位,移位数要加1。移位数也决...原创 2019-03-17 21:52:02 · 369 阅读 · 0 评论