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

网站建设开发企业网站建设 电脑配置

网站建设开发,企业网站建设 电脑配置,东莞网站制作个性化,马鞍山天立建设网站目录 1. 两数之和 1.1 题目解析 1.2 解法 1.3 代码实现 2. 只出现一次的数字II 2.1 题目解析 2.2 解法 2.3 代码实现 1. 两数之和 371. 两整数之和 - 力扣#xff08;LeetCode#xff09; 给你两个整数 a 和 b #xff0c;不使用 运算符 和 - #xff0c;计算并…目录 1. 两数之和 1.1 题目解析 1.2 解法 1.3 代码实现 2. 只出现一次的数字II 2.1 题目解析 2.2 解法 2.3 代码实现 1. 两数之和 371. 两整数之和 - 力扣LeetCode 给你两个整数 a 和 b 不使用 运算符  和 - 计算并返回两整数之和。 示例 1 输入a 1, b 2 输出3示例 2 输入a 2, b 3 输出5 提示 -1000 a, b 1000 1.1 题目解析 本题要求在不使用加减运算符的情况下计算两个整数的和。换句话说要实现“加法”的本质操作无进位相加 进位叠加。 常规解法 最直观的想法是直接写 return a b;但是题目显然禁止这样。 既然不能用 -我们需要模拟“加法”的底层过程。二进制加法本质上有两部分 无进位相加用 异或运算 (XOR) 实现因为相同位相加结果为 0不同为 1。 进位部分用 与运算 (AND) 再左移一位实现因为只有 11 才会产生进位。 这个过程需要循环直到没有进位为止。 思路转折 加法能拆解为两个基本的位运算 → 迭代模拟 → 得到最终和。 这种思路的优点复杂度始终是 O(1)因为整数位数是固定的32 位。 1.2 解法 用 a ^ b 表示“当前无进位的和”用 (a b) 1 表示“进位”不断迭代直到进位为 0。 公式 sum a ^ b carry (a b) 1 a sum b carryi初始化 a, b。 ii计算无进位和a ^ b。 iii计算进位(a b) 1。 iiii更新 a 和 b。 iiiii重复直到进位 b 0。 iiiiii返回最终结果 a。 1.3 代码实现 class Solution {public int getSum(int a, int b) {while (b ! 0) {int sum a ^ b; // 无进位和int carry (a b) 1; // 进位a sum;b carry;}return a;} }复杂度分析 时间复杂度O(1)因为整数位数有限最多 32 次迭代。 空间复杂度O(1)只用常数额外变量。 2. 只出现一次的数字II 137. 只出现一次的数字 II - 力扣LeetCode 给你一个整数数组 nums 除某个元素仅出现 一次 外其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1 输入nums [2,2,3,2] 输出3示例 2 输入nums [0,1,0,1,0,1,99] 输出99 提示 1 nums.length 3 * 104-231 nums[i] 231 - 1nums 中除某个元素仅出现 一次 外其余每个元素都恰出现 三次 2.1 题目解析 在一个数组里所有数字都出现三次只有一个数字出现一次找出它。 换句话说本质是如何在三次重复噪声中唯一识别出那个单独元素。 常规解法 直观做法是用哈希表统计频次再找频次为 1 的元素。 哈希表能解决但空间复杂度是 O(n)题目要求 O(1)。 因此必须用位运算直接利用二进制规律。 思路转折 每个数的二进制位若出现三次总和必能被 3 整除。 只有那个单独出现一次的数会在某些二进制位上让总和不能整除 3。 所以逐位统计 → 取余 → 重建结果。 这种方法复杂度 O(32n) O(n)空间 O(1) 2.2 解法 按位统计每个二进制位出现的次数模 3 去掉“三次噪声”剩下的位拼接成结果。 公式 bitSum[i] Σ(num i 1) if bitSum[i] % 3 ! 0 → 结果的第 i 位 1i初始化结果变量 ret 0。 ii遍历 32 位因为 int 是 32 位。 iii对于每一位统计所有数在该位上的 1 的个数。 iiii如果该位 1 的个数 % 3 ≠ 0说明唯一数在该位上有 1。 iiiii把该位写入 ret。 iiiiii返回 ret。 正确性三次重复的性质 题目保证除一个元素外其余元素都出现三次→ 如果我们单独看数组中某一位 i每个出现三次的数会在这位上贡献 0000 或 1113。 换句话说 三次重复的数对第 i 位的总和一定是 3 的倍数。 2.3 代码实现 class Solution {public int singleNumber(int[] nums) {int ret 0;for (int i 0; i 32; i) {int sum 0;for (int num : nums) {sum (num i) 1; // 统计第 i 位}if (sum % 3 ! 0) {ret | (1 i); // 恢复结果的第 i 位}}return ret;} }复杂度分析 时间复杂度O(32n) ≈ O(n)。 空间复杂度O(1)。
http://www.zqtcl.cn/news/902326/

相关文章:

  • 做商城网站需要备案什么域名硬件开发工具有哪些
  • 网络网站制作技巧wordpress全文
  • 韩国原生ip站群服务器左右悬停代码网站
  • 专门做广东11选5的网站网站 备案 营业执照
  • 免费扑克网站wordpress弹出服务协议窗口
  • 网站的反爬一般怎样做网站右键屏蔽
  • 茂名做网站dyiee青岛宣传片制作公司
  • 凡科网可以自己做网站吗编程常用网站
  • 做网站练手项目公司营业执照可以做几个网站
  • 聚通达网站建设网站并发要求
  • 网站建设预算申请如何写服装店网页设计素材
  • 做网站设计的公司柳州芜湖又出现一例
  • 重庆网站网站建设东莞市网站建设公司哪家好
  • php做网站如何架构wordpress 排版
  • wordpress免费网站模板下载地址在北京注册公司需要多少钱
  • 做的网站打不开高端网站名字
  • 个人网站建设报告西安网站开发高端网站开发
  • “网站建设:上海珍岛”网站备案信息查询系统
  • 北京哪个公司做网站专业建站培训
  • 郑州知名网站推广网站管理设置
  • 建设工程网站资质人员查询常州模板网站建设价格
  • 自己建网站做app手机网站列表页源码
  • 企业网站模板seo网站建设关键词优化
  • 平面毕业设计作品网站推广普通话ppt
  • p2p网站开发思路方案免费建简单网站
  • 微信朋友圈的网站连接怎么做互联网工程有限公司
  • 高大上企业网站优秀的门户网站
  • 做seo对网站推广有什么作用自己做电商网站吗
  • 网站从哪些方面来做泉州网页搜索排名提升
  • 网站建设可以给公司带来想做网站开发兼职