我们常见的一些主要的数据结构比方整型int或者浮点型float由于位数过多无法用内置类型存储,这时候我们就须要自己实现高精度的数据类型来进行存储和运算。这样的问题在实际产品中还是比較有用的,所以相对来说也是面试中的常客。LeetCode中关于高精度的题目有下面几道:
Add Binary
Add Two Numbers
Plus One
Multiply Strings

Add BinaryAdd Two Numbers是同一类型的题目,都是高精度中的加法运算,仅仅是一个是二进制的,一个是十进制的,事实上进制是无所谓的,代码基本能够统一起来用一种思路来实现。思路也非常easy,就是从低位開始相加,一直维护进位就能够了。属于考察非常主要的数组操作,没有什么算法难度,主要看看coding实现能力。

Plus One也是一道常见的题目,他事实上就是实现C++中++的运算符,由于仅仅须要+1,所以事实上比上面的题目更加简单。这道题的小陷阱就是它是用数组从高位到低位进行存储的,所以假设出现进位,那么须要又一次分配空间,并给最高位赋1,其它位赋0就可以。这里恰好引入一个点,就是高精度存储应该低位到高位存储还是反过来好,这也是面试中可能问到的问题。

Multiply Strings这道题是高精度的乘法运算,属于比較复杂的,须要对每一位的结果分别计算累加,当中的细节有点多,这里就不细说了,个人觉得实现有点复杂,并非非常适合在面试中出现。

尽管说题目不多,可是这类题目的出现率却是非常高的,主要原因倒不是这样的题目本身有非常多的考点,而是它们特别好扩展,基本上来说问到这样的题目,首先是考察一下coding能力,一般来说都是这样的加减乘除的运算,接下来一定会是关于数据结构(或者说面向对象)的设计。这些题目的本身都是为高精度BigInteger服务的,面试官会问一些关于这个数据结构设计的问题,比方说假设让你来设计这个类,用什么数据结构来存(比方数组还是链表,各有什么利弊),须要哪些接口(构造函数,加减乘除运算等等),还有比方要设计构造函数,须要什么接口的构造函数(这里赋值构造函数,赋值运算符这些肯定是须要的,可是要注意必须提供对于常规类型比方int,long这些的接口,一个好的高精度类肯定是要对照它更弱的数据结构进行兼容的)。
上面我列举了一些可能在面试中会被继续考查的问题,也是一部分联想,像这样的设计问题能够问得还是比較多的,也是非经常见的,大家能够自己多进行这样的问题的准备和联想哈。

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

  1. c++ LeetCode (初级字符串篇) 九道算法例题代码详解(二)

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11089327.html 已经刷了很多篇leetcode题了,不过最近在找c++的实习工作(大佬 ...

  2. Leetcode模拟题篇

    43. Multiply Strings 高精度非负整数的乘法. string multiply(string num1, string num2) { '); ; <= i; --i) { ; ...

  3. 【持续更新】leetcode算法-数组篇

    会在近期陆续地完成数组篇的整理,希望对找工作的小伙伴有所帮助.   1.Two Sum:两数相加为一固定值,求其下标.一次遍历数组,用一个hash表存储已经访问过的数及其下标,对于新访问的数value ...

  4. LeetCode之Easy篇 ——(7)Reverse Integer

    7.Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: Out ...

  5. LeetCode之Easy篇 ——(1)Two Sum

    1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a s ...

  6. LeetCode刷题总结-数组篇(上)

    数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题 ...

  7. LeetCode 73,为什么第一反应想到的解法很有可能是个坑?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第42篇文章,我们来看看LeetCode第73题矩阵置零,set matrix zeroes. 这题的难度是Mediu ...

  8. LeetCode 74,直击BAT经典面试题

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题43篇文章,我们今天来看一下LeetCode当中的74题,搜索二维矩阵,search 2D Matrix. 这题的 ...

  9. LeetCode 77,组合挑战,你能想出不用递归的解法吗?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第46篇文章,我们一起来LeetCode中的77题,Combinations(组合). 这个题目可以说是很精辟了,仅仅 ...

随机推荐

  1. MySQL----数据的显示位宽

    问题:在MySQL表中的列可以定义它显示的位宽.那么定义了位宽会不会影响数据的取值范围呢? 测试: 1.定义一个用于测试的表 create table t(x int,y int(2),z int(2 ...

  2. 进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)

    WORD  GetProcessIdByName(WCHAR *processName){ DWORD processId = 0;HANDLE hProcessSnap=CreateToolhelp ...

  3. [Linux] 修改主机名(hostname)

    在Linux命令行下输入hostname,查看当前主机名,如果想修改它,直接在hostname后面加上新主机名即可(注:以下操作都需要root用户执行),如: # hostname newhostna ...

  4. ubuntu下perl SVG老是make失败

    解决方法是用libgd-svg-perl软件包代替.

  5. php解决与处理网站高并发 大流量访问的方法

    方法/步骤   首先,确认服务器硬件是否足够支持当前的流量 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么 ...

  6. http multipart/form-data POST文件上传详解

    POST /test/index.php HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firef ...

  7. C#获取单个字符的拼音声母

    public class ConvertToPinYing     {         /// <summary>         /// 汉字转拼音缩写         /// < ...

  8. NET 人民币大写

    /***** HongShijin** Me@HongShijin.com** 2009-3-15 10:13:00.00000** text/C#***/ /// <summary> / ...

  9. 拾遗补缺之session,高手请跳过!

    session timeout(单位:分钟)---web.config文件中 session共享时需要使用stateServer模式(web.config中,mode="stateServe ...

  10. 让ie支持placeholder属性,一段js搞定

    placeholder属性真的是超级好用的新属性,可惜,只有新版浏览器才支持,为了写出输入框贴心提示,老方法就是加span标签覆盖,营造出placeholder提示的感觉,现在安利一款好用的js,好用 ...