LeetCode总结 -- 高精度篇】的更多相关文章

我们常见的一些主要的数据结构比方整型int或者浮点型float由于位数过多无法用内置类型存储,这时候我们就须要自己实现高精度的数据类型来进行存储和运算.这样的问题在实际产品中还是比較有用的,所以相对来说也是面试中的常客.LeetCode中关于高精度的题目有下面几道:Add BinaryAdd Two NumbersPlus OneMultiply Strings Add Binary和Add Two Numbers是同一类型的题目,都是高精度中的加法运算,仅仅是一个是二进制的,一个是十进制的,事…
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11089327.html 已经刷了很多篇leetcode题了,不过最近在找c++的实习工作(大佬们有推荐的吗QAQ),现在慢慢补上吧 虽然有点烦,但是还是要提一句,刷leetcode题目的时候,最好还是自己先思考然后写出一个通过的代码,再去看其他人的代码参考比较好,当然了,写不出来就当我没说.尽力而为即可. 一.反转字符串 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 c…
43. Multiply Strings 高精度非负整数的乘法. string multiply(string num1, string num2) { '); ; <= i; --i) { ; ; <= j; --j) { ] - ') + carry; sum[i + j + ] = tmp % + '; carry = tmp / ; } sum[i] += carry; } size_t startpos = sum.find_first_not_of("); if (str…
会在近期陆续地完成数组篇的整理,希望对找工作的小伙伴有所帮助.   1.Two Sum:两数相加为一固定值,求其下标.一次遍历数组,用一个hash表存储已经访问过的数及其下标,对于新访问的数value,查hash表中是否有target-value的值,如果有,程序输出,如果没有,继续访问下一个数直到访问完.   public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> hash = new HashMap<&g…
7.Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: Output: Example 2: Input: - Output: - Example 3: Input: Output: Note:Assume we are dealing with an environment which could only hold integers within the…
1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [2,…
数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题都有两到三个考点.比如,考查数组+哈希表.数组+动态规划+数学.数组+回溯等. 看到如此多考点标签,如果盲目地按照一个标签内部所有习题的顺序去刷题,会让人有点错乱感.对于时间比较紧凑的同学来说,题目的数量比较多,想在较短时间内刷完是一个很大的挑战.因此,本文针对时间较紧凑的同学精选一些数组类型的代表…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第42篇文章,我们来看看LeetCode第73题矩阵置零,set matrix zeroes. 这题的难度是Medium,通过率在43%左右,从通过率上可以看出这题的难度并不大.但是这题的解法不少,从易到难,有很多种方法.而且解法和它的推导过程都挺有意思,我们一起来看下. 题意 首先我们来看题意,这题的题意很简单,给定一个二维数组.要求我们对这个数组当中的元素做如下修改,如果数组的i行j列为0,那么将同行和同列的元…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题43篇文章,我们今天来看一下LeetCode当中的74题,搜索二维矩阵,search 2D Matrix. 这题的官方难度是Medium,通过率是36%,和之前的题目不同,这题的点赞比非常高,1604个赞,154个反对.可见这题的质量还是很高的,事实上也的确如此,这题非常有意思. 题意 这题的题意也很简单,给定一个二维的数组matrix和一个整数target,这个数组当中的每一行和每一列都是递增的,并且还满足每…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第46篇文章,我们一起来LeetCode中的77题,Combinations(组合). 这个题目可以说是很精辟了,仅仅用一个单词的标题就说清楚了大半题意了.这题官方难度是Medium,它在LeetCode当中评价很高,1364人点赞,只有66个反对.通过率53.6%. 题意 题目的题意很简单,给定两个整数n和k.n表示从1到n的n个自然数,要求随机从这n个数中抽取k个的所有组合. 样例 Input: n = 4,…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题53篇文章,我们一起来看看LeetCode中的85题,Maximal Rectangle(最大面积矩形). 今天的这道题目和上一篇文章讲的Largest Rectangle in Histogram这题有一定的相似,所以如果没有看过上一篇文章的同学,建议先移步观看一下上一篇. LeetCode 84 | 单调栈解决最大矩形问题 85题的官方难度是Hard,点赞2757,反对69,通过率37.2%左右.它的情况和…
LeetCode:Combinations这篇博客中给出了不包含重复元素求组合的5种解法.我们在这些解法的基础上修改以支持包含重复元素的情况.对于这种情况,首先肯定要对数组排序,以下不再强调 修改算法1:按照求包含重复元素集合子集的方法LeetCode:Subsets II算法1的解释,我们知道:若当前处理的元素如果在前面出现过m次,那么只有当前组合中包含m个该元素时,才把当前元素加入组合 class Solution { public: void combine(vector<int> &a…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode的26篇文章,我们来实战一下全排列问题. 在之前的文章当中,我们讲过八皇后.回溯法,也提到了全排列,但是毕竟没有真正写过.今天的LeetCode46题正是让我们生成给定元素的全排列. 题意很简单,只有一句话,给定一个没有重复元素的序列,让我们返回这个序列所有的全排列,并且我们不需要考虑这些排列的顺序. 回溯法 我们在之前的文章当中分析过,全排列问题,可以看成是搜索问题,从而近似成八皇后问题.在八皇后问题当中,我们枚…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第28篇,依然是全排列的问题. 如果对全排列不熟悉或者是最近关注的同学可以看一下上一篇文章: LeetCode46 回溯算法求全排列,这次是真全排列 LeetCode就是喜欢这样,把类似的问题放在一起,让你刷的时候一起刷,从而更加深刻地理解.今天的问题同样是全排列,不过稍稍不同的是,我们有一个限制条件不一样,给定的元素当中可能存在重复.但是元素存在重复,我们并不想最后的结果也出现重复,这个时候应该怎么办? 举个例子…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第29篇,我们来看一道简单的矩阵旋转问题. 题意 题目的要求很简单,给定一个二维方形矩阵,要求返回矩阵旋转90度之后的结果. 下面我们来看两个例子: 题解 这个动图一看就明白了,也就是说我们需要将一个二维矩阵顺时针旋转90度.这个题意我们都很好理解,但是题目当中还有一个限制条件:我们不能额外申请其他的数组来辅助,也就是对我们的空间利用进行了限制. 如果没有这个条件限制其实很容易,我们只需要算出每一个坐标旋转之后的位…
问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不影响速度 问题地址: http://www.thegrouplet.com/thread-112926-1-1.html 问题: 除了WORDPRESS大家还用什么其他的博客程序额? 月光答复: Typecho这种虽然简单,但是如果你有特殊需要,找插件和模板就难多了 各有各的好  ... 问题地址:…
Leetcode解题思想总结篇:双指针 1概念 双指针:快慢指针. 快指针在每一步走的步长要比慢指针一步走的步长要多.快指针通常的步速是慢指针的2倍. 在循环中的指针移动通常为: faster = faster.next.next; slower = slower.next; 2 应用 2.1. 用来判断链表是否有环以及寻找环入口 Linked List Cycle Linked List Cycle II 是否有环:快慢指针思想,注意循环条件:(fast != null) && (fas…
树的性质推断是树的数据结构比較主要的操作,一般考到都属于非常easy的题目,也就是第一道入门题.面试中最好不能有问题,力求一遍写对.不要给面试官不论什么挑刺机会.LeetCode中关于树的性质有下面题目:Maximum Depth of Binary TreeMinimum Depth of Binary TreeBalanced Binary TreeSame TreeSymmetric Tree 首先说说关于求树的深度的题目,最简单的是求最大深度Maximum Depth of Binary…
终于刷完了leetcode的前250道题的easy篇.好吧,其实也就60多道题,但是其中的套路还是值得被记录的. 至于全部code,请移步github,题目大部分采用python3,小部分使用C,如有问题和建议,欢迎指正. String 有一个string库,可以返回各种string的汇总,很值得用. 当题目中需要实现字符串替代的时候,python中有一个自带的translate()函数可以实现这个功能,具体可见Python3字符串替换replace(),translate(),re.sub()…
昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日截止,共有204人参加,根据投票结果显示,大多数人希望通过刷LeetCode能够提高代码水平,在工作中和面试中有帮助,然而有一半人没有接触过Leetcode,一半人接触过,但只刷了一点.几乎所有投票的人刷题的数量都小于100题,说明大家对刷题的认识和热情都还比较浅,可能是因为刷题比较枯燥,又不能马上…
合并是一维数据结构中非经常见的操作, 一般是排序, 分布式算法中的子操作. 这篇总结主要介绍LeetCode中关于合并的几个题目: Merge Two Sorted ListsMerge Sorted ArraySort ListMerge k Sorted Lists 我们先来看看两个有序一维数据的合并, 这里主要是要介绍链表的合并操作, 只是由于一维数组的合并也比較简单, 并且与链表有比較性, 就顺便在这里列举一下. Merge Two Sorted Lists就是要求合并两个有序链表, 一…
树的求和属于树的题目中比較常见的,由于能够有几种变体,灵活度比較高,也能够考察到对于树的数据结构和递归的理解. 一般来说这些题目就不用考虑非递归的解法了(尽管事实上道理是跟LeetCode总结 -- 树的遍历篇一样的.仅仅要掌握了应该没问题哈). LeetCode中关于树的求和有下面题目:Path SumPath Sum IISum Root to Leaf NumbersBinary Tree Maximum Path Sum 我们先来看看最常见的题目Path Sum.这道题是推断是否存在从根…
这篇文章的主题是动态规划, 主要介绍LeetCode中一维动态规划的题目, 列表如下: Climbing StairsDecode WaysUnique Binary Search TreesMaximum SubarrayBest Time to Buy and Sell Stock 在介绍上述具体题目之前, 我们先说说动态规划的通常思路. 动态规划是一种算法思路(注意这里不要和递归混淆, 事实上递归和迭代只是两种不同的实现方法, 并不是算法), 用一句话来总结就是, 动态规划是利用存储历史信…
合并两个有序数组 开始的时候将这道题理解错了,发现几个奇怪的测试案例后才明白这道题什么意思.本来的想法就是把nums2全部放到num1里面,然后删除重复元素.排序一下,就有了下面的代码: class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { for(int i=0;i<n;i++) { nums1.push_back(nums2[i…
本文接着上一篇文章<LeetCode刷题总结-数组篇(上)>,继续讲第二个常考问题:矩阵问题. 矩阵也可以称为二维数组.在LeetCode相关习题中,作者总结发现主要考点有:矩阵元素的遍历.矩阵位置的旋转.矩阵行或列次序的交换.空间复杂度为O(1)等.本期共12道题,2道简单题,8道中等题,2道困难题. 例1是杨辉三角的一个延申题,是一道非常经典的矩阵习题,本题理想解法是动态规划,但是也可以采用递归来求解. 例2是一道顺时针访问矩阵元素的习题,在不少面试题中有见到. 例3.例4和例5则强调如果…
本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17题) LeetCode刷题总结-数组篇(中),矩阵问题(共12题) LeetCode刷题总结-数组篇(番外),思维转换类型问题(共7题) 本系列50道题是作者在LeetCode题库数组标签中包含的202道题中,按照解答考点分类归纳总结的题型.解法仅供参考,主要在于题目和考点的分类.希望对准备刷Lee…
本期共7道题,三道简单题,四道中等题. 此部分题目是作者认为有价值去做的一些题,但是其考察的知识点不在前三篇总结系列里面. 例1解法:采用数组索引位置排序的思想. 例2解法:考察了组合数学的组合公式应用.有点类似动态规划的思想. 例3解法:  考察灵活运用二进制和整除余数的数学知识. 例4解法:动态规划思想的应用. 例5解法:分类讨论的数学思想. 例6解法:考察灵活运用哈希字典. 例7解法:考察闰年的数学判断公式,计算周几的细节处理能力. 例1 最大宽度坡 题号:962,难度:中等 题目描述:…
本文讲解有关树的习题中子树问题和新概念定义问题,也是有关树习题的最后一篇总结.前两篇请参考: LeetCode刷题总结-树篇(上) LeetCode刷题总结-树篇(中) 本文共收录9道题,7道中等题,2道困难题.本篇总结的知识点请参考下图: 1 新概念定义问题 本部分收录习题如下: 117.填充每个节点的下一个右侧节点指针II, 难度: 中等 297.二叉树的序列化与反序列化,难度:困难 114.二叉树展开为链表,难度: 中等 998.最大二叉树II, 难度:中等 834.树中距离之和,难度:困…
本篇接着<LeetCode刷题总结-树篇(上)>,讲解有关树的类型相关考点的习题,本期共收录17道题,1道简单题,10道中等题,6道困难题. 在LeetCode题库中,考察到的不同种类的树有七种,分别是二叉搜索树.平衡二叉树.满二叉树.完全二叉树.线段树.字典树和树状数组.每一种类型的树,有着不同的特性以及对应的考察重点.考察重点可参考下图,下文按照树的类型分别划分了一个目录章节,并给出了对应的经典习题. 1 二叉树搜索树 基本定义:又称二叉查找树,二叉排序树.若它的左子树不空,则左子树上所有…
      引子:刷题的过程可能是枯燥的,但程序员们的日常确不乏趣味.分享一则LeetCode上名为<打家劫舍 |||>题目的评论: 如有兴趣可以从此题为起点,去LeetCode开启刷题之旅,哈哈.该题目是选择一颗二叉树中对应节点的问题,也是本文收录的一道例题(具体请参考例12). 本文开始分享作者对于LeetCode上有关树的刷题总结.谈到树,很多初学者会感觉很头疼.头疼的重点是其很多解法都离不开递归(或者说是深度优先搜索)的应用.而递归的难点在于其有很多返回值,对于这些返回值的顺序很难理顺…