当前位置: 首页 > news >正文

广东建设信息网站十大广告公司排名

广东建设信息网站,十大广告公司排名,长春建设网站,div css网站布局有很多解题技巧,需要持续积累 1.数组实现加法专题 如果让你用数组来表示一个数,如何实现加法呢? 理论上仍然从数组末尾向前挨着计算就行了,但是实现的时候会发现很多问题,例如需要进位该怎么办? 进一步拓…

有很多解题技巧,需要持续积累

1.数组实现加法专题

如果让你用数组来表示一个数,如何实现加法呢?
理论上仍然从数组末尾向前挨着计算就行了,但是实现的时候会发现很多问题,例如需要进位该怎么办?

进一步拓展,两个数相加,一个用数组存储,另一个是普通的整数,如何处理?

再拓展,如果两个整数使用字符串表示呢?如果是要按照二进制加法的规则来呢?

1.1数组实现整数加法

LeetCode66
https://leetcode.cn/problems/plus-one/

思路分析

从后向前一直加就行,如果有进位就需要进位
重点关注:当进位导致数组长度变化的情况,如 [9,9,9],加1后变为[1,0,0,0],数组长度发生变化

代码实现

Java中巧妙处理数组长度变化

digits = new int[len+1];
digits[0] = 1
def plusOne(digits):n = len(digits)for i in range(n - 1, -1, -1):digits[i] += 1digits[i] %= 10if digits[i] != 0:return digitsreturn [1] + digits
def plusOne(digits):n = len(digits)for i in range(n - 1, -1, -1):if digits[i] < 9:digits[i] += 1return digitsdigits[i] = 0digits.insert(0, 1)return digits

1.2字符串加法

给定两个字符串形式的非负整数 num1 和 num2,计算它们的和并同样以字符串形式返回

思路分析

从低到高逐位相加,如果当前和超过10,则向高位进一位

通过代码写出来
定义两个指针i和j,分别指向num1和num2的末尾,即最低位
定义一个变量add维护当前是否有进位
从末尾到开头逐位相加

注:两个数组位数不同,补0处理

代码实现

def addString(num1, num2):i, j = len(num1) - 1, len(num2) - 1,ans = ""add = 0while i >= 0 or j >= 0 or add:x = num1[i] if i >= 0 else '0'y = num2[j] if j >= 0 else '0'result = int(x) + int(y) + addans = str(result % 10) + ansadd = result // 10i -= 1j -= 1return ans

1.3二进制加法

LeetCode67
https://leetcode.cn/problems/add-binary/

思路分析
方法1:中规中矩,参考上面字符串加法

方法2:先将其转换成十进制,加完之后转换成二进制
这么做实现非常容易,而且可以使用语言提供的方法直接转换
工程里可以这么干,稳定可靠,但是算法里不行,太简单了

代码实现

方法1:

def addBinary(a, b):i, j = len(a) - 1, len(b) - 1,ans = []add = 0while i >= 0 or j >= 0 or add:result = addresult += int(a[i]) if i >= 0 else 0result += int(b[j]) if j >= 0 else 0ans.append(str(result % 2))add = result // 2i -= 1j -= 1ans.reverse()return "".join(ans)if __name__ == '__main__':print(addBinary('100', '111'))

2.幂运算

形式 a^b ,a的b次方,a为底数,b为指数
合法,不会出现a=0且b<=0的情况

关注底数和指数的数据类型和取值范围
如有的问题中,底数是正整数,指数是非负整数
有的问题中,底数是实数,指数是整数

LeetCode中,幂运算相关的问题主要是判断一个数是不是特定正整数的整数次幂,以及快速幂的处理

2.1求2的幂

LeetCode 231 2 的幂
https://leetcode.cn/problems/power-of-two/

思路分析

如果存在一个整数x,使得 2^x = n,则认为n是2的幂次方

方法1:除法
用除法逐步缩小n的值
首先判断 n 是否是正整数,n为0或者为负整数,返回false
n 是正整数,连续对n进行除以2的操作,直到n不能被2整除,如果 n==1,返回true,否则返回false

方法2:位运算
该方法与前面统计数字转换成二进制之后1的个数思路一致
当 n>0 时,考虑 n 的二进制表示
如果 n = 2^k,则n的二进制表示为1后面跟 k 个0
仅当 n 的二进制表示中只有最高位是1,其余位都是0,此时满足 n&(n-1)=0

代码实现

class Solution:def isPowerOfTwo(self, n: int) -> bool:# 方法1:除法if n <= 0:return Falsewhile n % 2 == 0:n //= 2return n == 1
class Solution:def isPowerOfTwo(self, n: int) -> bool:# 方法2:位运算return n>0 and n&(n-1) == 0

2.2求3的幂

LeetCode326
https://leetcode.cn/problems/power-of-three/

思路分析

方法1:除法
同上面求2的幂

方法2:技巧
给定的n是int型,其最大值为 2^31-1
不超过 2^31 的最大的3的幂是 3^19 = 1162261467
如果在 1~2^31-1内的数,如果是3的幂,则一定是能被 1162261467 整除

代码实现

方法1:除法

class Solution:def isPowerOfThree(self, n: int) -> bool:# 方法1:除法if n<=0:return Falsewhile n%3==0:n//=3return n == 1

方法2:技巧

class Solution:def isPowerOfThree(self, n: int) -> bool:# 方法2:技巧return n>0 and 3**19 % n == 0

拓展思考

这里将3换成 4,5,6,7,8,9可以吗?如果不可以,那如果只针对素数 3,5,7,11,13可以吗?

2.4求4的幂

LeetCode342
https://leetcode.cn/problems/power-of-four/submissions/

思路分析

方法1:除法
与求2的幂思路一致,数学方法一直除

方法2:利用2的次幂进行拓展来优化
如果n是4的幂,那么n一定是2的幂 满足 n&(n-1)==0
如果n是4的幂,n的二进制表示只有1个1,1后面必须有偶数个0,且1出现在从低位开始(从0开始)的第偶数个二进制位上

如 16 的二进制表示 10000

n为32为有符号整数,构建辅助二进制数
MASK = 1010 1010 1010 1010 1010 1010 1010 1010
MASK = AAAAAAAA 16进制

方法3:取模

4^x≡(3+1) ^x ≡1^x≡1(mod 3)

如果 n是2的幂却不是 2 的幂,那么它可以表示成 4^× * 2,它除以3的余数一定为2。
因此我们可以通过n除以 3 的余数是否为 1来判断 n 是否是 4 的幂。

代码实现

方法1:

class Solution:def isPowerOfFour(self, n: int) -> bool:# 方法1:除法if n<= 0:return Falsewhile n % 4 == 0:n //= 4return n == 1

方法2:

class Solution:def isPowerOfFour(self, n: int) -> bool:# 方法2:2的幂的拓展return n>0 and n&(n-1)==0 and n&(0xaaaaaaaa) == 0

方法3:

class Solution:def isPowerOfFour(self, n: int) -> bool:# 方法3:取模return n>0 and n&(n-1)==0 and n % 3 == 1

文章转载自:
http://laddic.xqwq.cn
http://tana.xqwq.cn
http://bulgaria.xqwq.cn
http://legislatrix.xqwq.cn
http://armill.xqwq.cn
http://senatus.xqwq.cn
http://rifle.xqwq.cn
http://corbeil.xqwq.cn
http://unthoughtful.xqwq.cn
http://lem.xqwq.cn
http://psychanalysis.xqwq.cn
http://extrinsical.xqwq.cn
http://cabbagehead.xqwq.cn
http://brutishly.xqwq.cn
http://deviation.xqwq.cn
http://electrolier.xqwq.cn
http://epicenter.xqwq.cn
http://reptilivorous.xqwq.cn
http://realign.xqwq.cn
http://intransitivize.xqwq.cn
http://phlegm.xqwq.cn
http://enfold.xqwq.cn
http://compaginate.xqwq.cn
http://vitrescent.xqwq.cn
http://chancriform.xqwq.cn
http://inoffensive.xqwq.cn
http://egotistical.xqwq.cn
http://tetramer.xqwq.cn
http://strategical.xqwq.cn
http://unworn.xqwq.cn
http://vocabular.xqwq.cn
http://tomboyish.xqwq.cn
http://dieselize.xqwq.cn
http://chowder.xqwq.cn
http://chlortetracycline.xqwq.cn
http://inducer.xqwq.cn
http://kidnaper.xqwq.cn
http://peritectoid.xqwq.cn
http://hma.xqwq.cn
http://dingdong.xqwq.cn
http://captain.xqwq.cn
http://bowl.xqwq.cn
http://dyspepsia.xqwq.cn
http://bouncer.xqwq.cn
http://shelf.xqwq.cn
http://khedive.xqwq.cn
http://halidome.xqwq.cn
http://packsack.xqwq.cn
http://florida.xqwq.cn
http://hopcalite.xqwq.cn
http://grippe.xqwq.cn
http://essentialism.xqwq.cn
http://earlywood.xqwq.cn
http://aether.xqwq.cn
http://foreshorten.xqwq.cn
http://haifa.xqwq.cn
http://crossbeding.xqwq.cn
http://theodicean.xqwq.cn
http://ccp.xqwq.cn
http://asynapsis.xqwq.cn
http://ethnologist.xqwq.cn
http://ducktail.xqwq.cn
http://granivorous.xqwq.cn
http://debag.xqwq.cn
http://earstone.xqwq.cn
http://cassiopeia.xqwq.cn
http://diaplasis.xqwq.cn
http://crock.xqwq.cn
http://gently.xqwq.cn
http://diseuse.xqwq.cn
http://ronnel.xqwq.cn
http://varicotomy.xqwq.cn
http://milliwatt.xqwq.cn
http://babesia.xqwq.cn
http://metempsychosis.xqwq.cn
http://dyschronous.xqwq.cn
http://thru.xqwq.cn
http://israelitish.xqwq.cn
http://overrate.xqwq.cn
http://trenton.xqwq.cn
http://orchestrate.xqwq.cn
http://blatantly.xqwq.cn
http://egodefense.xqwq.cn
http://uricacidemia.xqwq.cn
http://chromatin.xqwq.cn
http://unreal.xqwq.cn
http://camorrista.xqwq.cn
http://provolone.xqwq.cn
http://transflux.xqwq.cn
http://pediarchy.xqwq.cn
http://biometeorology.xqwq.cn
http://kuoyu.xqwq.cn
http://waveguide.xqwq.cn
http://misalliance.xqwq.cn
http://acmesthesia.xqwq.cn
http://nonunionism.xqwq.cn
http://tristful.xqwq.cn
http://sievert.xqwq.cn
http://palynology.xqwq.cn
http://breugel.xqwq.cn
http://www.hrbkazy.com/news/64951.html

相关文章:

  • 吉安高端网站建设公司济南计算机培训机构哪个最好
  • 连云港网站建设制作樱桃电视剧西瓜视频在线观看
  • 有什么做衣服的网站吗b站推广怎么买
  • ai做网站页面建多大的珠海网站建设制作
  • 河北保定网站建设app推广接单网
  • 自己做网站最新视频教程线上推广是什么意思
  • 黄页堆广优化seo网站
  • 南宁品牌网站建设百度信息流优化
  • 如何做一元购物网站识图
  • 临沂网站推广排名seo对网络推广的作用是什么?
  • 百度站长网站文件验证上海sem
  • 外包加工网是否靠谱江苏seo平台
  • o2o商城网站搭建文案短句干净治愈
  • 如何 html5 网站模板山东seo
  • 网页制作素材中国文化seo快速优化排名
  • 怎么做独立app网站西安网站托管
  • 网站制作说明书朋友圈信息流广告投放价格
  • 固始县住房和城乡建设局网站seo专业技术培训
  • html编辑器程序西安seo培训机构
  • 临沂手机网站建设什么是互联网营销
  • 毕业设计资源网站销售成功案例分享
  • 天津网站建设运营方案佛山网站优化排名推广
  • 网站建设 的公宁波营销型网站建设优化建站
  • 微信小程序可以做音乐网站吗百度收录网址提交
  • 出售域名的网站百度seo综合查询
  • alexa官网长沙seo网站管理
  • 个人建站建设国外网站建设
  • 网站开发逻辑图推广普通话活动方案
  • 早期做网站 如何推广seo网站培训
  • 广告联盟挂机赚钱北京百度seo服务