网站的基本布局,济南学习做网站,自己做个网页多少钱,windows 2003建设网站一直很纠结算法的文章应该怎么写。最后觉得还是从最简单的level开始写吧#xff0c;一开始就弄些重量级的#xff0c;什么人工智能#xff0c;机器学习的算法#xff0c;还要有大量的数学以及优化的知识#xff0c;小白们估计会很郁闷#xff0c;当然我也不一定能做出来对…一直很纠结算法的文章应该怎么写。最后觉得还是从最简单的level开始写吧一开始就弄些重量级的什么人工智能机器学习的算法还要有大量的数学以及优化的知识小白们估计会很郁闷当然我也不一定能做出来对吧。我计划每题给出两种语言的解决方案一种静态语言一种动态语言。我选择C语言Python和Java作为实现语言由于篇幅有限其他语言的实现有兴趣的朋友请自己尝试。LeetCode 371. 两整数之和(Sum of Two Integers)问题描述不使用运算符 和 - 计算两整数 a 、b 之和。示例C语言实现既然不让用和-那么只能用位运算或者乘除和余来实现。如果我们将两个数转换成二进制则有 0000111110我们忽略掉进位的话就变成了000, 011, 110这个时候我们完全可以把替换成^。但是如何处理进位呢我们会发现只有11时才发生进位即11才进位但是进位是进到前面一位的所以我们要将进位的1再左移一位。这个时候我们将上述得到的两个新数再次执行异或如果没有进位的话这将是最后我们要的结果但是有可能还有进位。若还有进位的话我们就要重复上面的步骤一直到处理完所有的进位。最后的结果将是异或不会再次遇到进位问题得到最终结果。我们如何判断异或不会遇到进位根据两个数的结果如果有进位的结果一定不等于0所以的结果可以作为判断计算是否结束的条件。下图演示了261339的步骤具体代码如下python语言的实现python的实现和C语言的实现基本一致但是注意python的整型长度是没有限制的。我们需要限制在32位长度范围内所以我们要对位操作的结果再与0xffffffff来做限制。此外最终的结果可能是大于32位最大正整数的(即0x7fffffff)而在python中大于这个数的值仍然表示为正数而我们期望它应该是一个负数所以当最终的结果大于0x7fffffff的时候我们要对其取反这样既可得到相应的负数。代码如下Java语言的实现Java的实现和python语言的实现相同。代码如下