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

漯河市源汇区建设局网站网站开发主要内容

漯河市源汇区建设局网站,网站开发主要内容,网站代码 商品添加分类,宁波网络营销推广外包公司Day 6#xff1a;位运算#xff08;异或性质、二进制操作#xff09; #x1f4d6; 一、位运算简介 位运算是计算机底层优化的重要手段#xff0c;利用二进制操作可以大大提高运算速度。常见的位运算包括#xff1a; 与#xff08;#xff09;#xff1a;a 位运算异或性质、二进制操作 一、位运算简介 位运算是计算机底层优化的重要手段利用二进制操作可以大大提高运算速度。常见的位运算包括 与a b如果两个二进制位都为 1结果为 1否则为 0。或|a | b如果两个二进制位中至少有一个为 1结果为 1否则为 0。异或^a ^ b如果两个二进制位不同结果为 1否则为 0。取反~~a按位取反0 变 11 变 0。左移a n将 a 的二进制表示向左移动 n 位相当于 a * 2^n。右移a n将 a 的二进制表示向右移动 n 位相当于 a / 2^n保留符号位。无符号右移不保留符号位即高位补 0。 二、只出现一次的数字Single Number 1. 题目描述 给定一个非空整数数组除了某个数字只出现一次以外其他数字均出现两次。请找出这个只出现一次的数字。 示例 输入: nums [4, 1, 2, 1, 2] 输出: 42. 思路与分析 利用异或运算 ^ 性质1a ^ a 0任意数与自身异或为 0。性质2a ^ 0 a任意数与 0 异或仍是自身。性质3异或满足交换律和结合律即 a ^ b ^ c a ^ c ^ b顺序无关。性质4a ^ b ^ b a某个数字 b 出现偶数次它们会相互抵消。 因此将所有数字进行异或操作所有成对出现的数字都会抵消为 0最终结果就是那个只出现一次的数字。 3. 代码实现只出现一次的数字 public class SingleNumber {public int findSingleNumber(int[] nums) {int result 0;for (int num : nums) {result ^ num; // 利用异或运算找出唯一的数}return result;}public static void main(String[] args) {SingleNumber solution new SingleNumber();int[] nums {4, 1, 2, 1, 2};System.out.println(只出现一次的数字: solution.findSingleNumber(nums)); // 输出 4} }4. 代码讲解 result ^ num将数组中的所有数字进行异或。成对的数字会被消除只剩下唯一出现一次的数字。 ✅ 时间复杂度O(n)只需遍历一次数组。 ✅ 空间复杂度O(1)只使用一个变量存储结果。 三、二进制中 1 的个数Hamming Weight 1. 题目描述 编写一个函数计算一个整数的二进制表示中 1 的个数。 示例 输入: n 9 (1001) 输出: 22. 思路与分析 方法 1️⃣位运算逐位检查 每次检查 n 的最低位是否为 1n 1。右移 n 一位n 1直到 n 变为 0。 方法 2️⃣n (n - 1) 高效算法 性质n (n - 1) 可以移除 n 最右边的 1这样 1 的个数就等于操作 n (n - 1) 多少次。 3. 代码实现方法 1逐位检查 public class HammingWeight {public int countOnes(int n) {int count 0;while (n ! 0) {count (n 1); // 检查最低位是否为1n 1; // 右移一位}return count;}public static void main(String[] args) {HammingWeight solution new HammingWeight();int n 9; // 二进制: 1001System.out.println(二进制中 1 的个数: solution.countOnes(n)); // 输出 2} }4. 代码实现方法 2n (n - 1) public class HammingWeightOptimized {public int countOnes(int n) {int count 0;while (n ! 0) {n (n - 1); // 清除最低位的1count;}return count;}public static void main(String[] args) {HammingWeightOptimized solution new HammingWeightOptimized();int n 9; // 二进制: 1001System.out.println(二进制中 1 的个数: solution.countOnes(n)); // 输出 2} }5. 代码讲解 方法 1 时间复杂度 O(log n)因为 n 的二进制长度最多为 log n。空间复杂度 O(1)。 方法 2 时间复杂度 O(k)其中 k 是 n 中 1 的个数比 O(log n) 更快。空间复杂度 O(1)。 n (n - 1) 计算次数等于 1 的个数比 O(log n) 更快。 四、位运算总结 1. 常用位运算技巧 运算作用a 1判断 a 是否为奇数a(1 k)a ~(1 k)将 a 的第 k 位置 0a ^ (1 k)翻转 a 的第 k 位n (n - 1)清除 n 的最低位 1n (-n)获取 n 的最低位 1 2. 位运算的常见应用 判断奇偶数n 1 1奇数n 1 0偶数。求 n 的二进制中 1 的个数。交换两个数a a ^ b; b a ^ b; a a ^ b;不使用额外空间。判断 n 是否是 2 的幂n 0 (n (n - 1)) 0。 练习建议 理解异或运算的性质练习 只出现一次的数字。熟练掌握 n (n - 1)用于清除最低位 1 的优化技巧。多做位运算相关题目包括位掩码、二进制操作。
http://www.w-s-a.com/news/15795/

相关文章:

  • 怎么做一个免费的网站云南网站设计选哪家
  • dw做六个页面的网站做网站运营有前途吗
  • 中级网站开发工程师 试题战地之王网站做任务
  • 广东东莞保安公司湖南 seo
  • 无锡网站策划公司如何零基础学编程
  • 金融网站如何做设计网站开发流程 文档
  • 用jsp做网站国内知名设计工作室
  • 一键搭建网站北京公司网站设计
  • 山东省城乡建设部网站网站营销单页怎么做
  • 中国移动视频网站建设百度统计官网
  • 网站实施过程网站上传视频怎么做
  • 网上书店网站建设实训总结嘉兴seo
  • 网站运行需求cos wordpress
  • 网络小说网站推广策划方案单位网站建设收费标准
  • 医院网站建设论证报告河源网站seo
  • 网站demo怎么做淘宝客网站一般用什么做的
  • 网站开发之美 pdf关键词查询优化
  • 可以建站的网站做一个网站美工多少钱
  • 怎么做网站专题互联网营销师报考费用
  • 淘宝导购网站怎么做上海数据开放网站建设
  • 广东网站建设怎么选2021个人网站盈利模式
  • 珠海网站建设的公司排名网站前端开发培训
  • 手机网站制作 费怎么做分录网站域名hk
  • 济南做网站建网站公司怎样用代码制作网站
  • 网站开发文档有哪些建设规划
  • 专注网站建设11年百度搜索不到我的网站
  • 企业网站 建设 流程wordpress 分类目录自定义
  • 北京市建设管理公司网站长春网站推广排名
  • 西安建站软件获取网站全站代码
  • 个人做网站怎么备案网站建设收费标准渠道