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

重庆智能网站建设设计洛阳搜索引擎优化

重庆智能网站建设设计,洛阳搜索引擎优化,小程序源码带后台,可以做海报的网站按位异或#xff1a;相同为0#xff0c;不同为1 异或运算性质 1#xff09;异或运算就是无进位相加#xff08;ab写二进制形式每位相加时不进位#xff09; 2#xff09;异或运算满足交换律、结合律#xff0c;也就是同一批数字#xff0c;不管异或顺序是什么#…按位异或相同为0不同为1 异或运算性质 1异或运算就是无进位相加ab写二进制形式每位相加时不进位 2异或运算满足交换律、结合律也就是同一批数字不管异或顺序是什么最终的结果都是一个 30^nnn^n0原来是0还是0原来是1无进位想加还是0 4整体异或和如果是x整体中某个部分的异或和如果是y那么剩下部分的异或和是x^y 应用不借助中间变量交换ab的值 aa^b; ba^b; aa^b; 弊端尤其进行数组下标交换时要保证指针位置不能相同指向的数的值可以相同 arr[i]i^j;arr[j]i^j;arr[i]i^j;        前提ij 数组中1种数出现了奇数次其他的数都出现了偶数次返回出现了奇数次的数 出现了偶数次的数与eor异或结果还是eor 怎么把一个int类型的数提取出最右侧的1来 ~a把a打散盯着最右侧的1,1自身变0左右两侧均取反 ~a1最右侧的1左边的数字没变右边使得盯着的1由还原 ~a1-a 数组中有2种数出现了奇数次其他的数都出现了偶数次找到并打印这两种数 public class Code02_EvenTimesOddTimes {// arr中只有一种数出现奇数次public static void printOddTimesNum1(int[] arr) {int eor 0;for (int i 0; i arr.length; i) {eor ^ arr[i];}System.out.println(eor);}// arr中有两种数出现奇数次public static void printOddTimesNum2(int[] arr) {int eor 0;for (int i 0; i arr.length; i) {eor ^ arr[i];}// a 和 b是两种数// eor ! 0// eor最右侧的1提取出来// eor : 00110010110111000// rightOne :00000000000001000int rightOne eor (-eor); // 提取出最右的1int onlyOne 0; // eorfor (int i 0 ; i arr.length;i) {// arr[1] 111100011110000// rightOne 000000000010000if ((arr[i] rightOne) ! 0) {onlyOne ^ arr[i];}}System.out.println(onlyOne (eor ^ onlyOne));}public static int bit1counts(int N) {int count 0;// 011011010000// 000000010000 1// 011011000000// while(N ! 0) {int rightOne N ((~N) 1);count;N ^ rightOne;// N - rightOne}return count;}public static void main(String[] args) {int a 5;int b 7;a a ^ b;b a ^ b;a a ^ b;System.out.println(a);System.out.println(b);int[] arr1 { 3, 3, 2, 3, 1, 1, 1, 3, 1, 1, 1 };printOddTimesNum1(arr1);int[] arr2 { 4, 3, 4, 2, 2, 2, 4, 1, 1, 1, 3, 3, 1, 1, 1, 4, 2, 2 };printOddTimesNum2(arr2);}}假设ab这两个数出现了奇数次拿eor^整个数组得到eora^b而ab说明eor0说明eor某一位必然有1不妨取最右边的1然后根据这个1对原数组进行分类一类这一位上有1另一类没有假设a这一位上有1b没有定义eor·异或上a所在的那一类那一类只有a出现了奇数次所以eor·a然后eor·在异或eor得到b 一个数组中有一种数出现了k次其他数字都出现了m次m1,km,找到出现了k次的数 package class02;import java.util.HashMap; import java.util.HashSet;public class Code03_KM {public static int test(int[] arr, int k, int m) {HashMapInteger, Integer map new HashMap();for (int num : arr) {if (map.containsKey(num)) {map.put(num, map.get(num) 1);} else {map.put(num, 1);}}for (int num : map.keySet()) {if (map.get(num) k) {return num;}}return -1;}public static HashMapInteger, Integer map new HashMap();// 请保证arr中只有一种数出现了K次其他数都出现了M次public static int onlyKTimes(int[] arr, int k, int m) {if (map.size() 0) {mapCreater(map);}int[] t new int[32];// t[0] 0位置的1出现了几个// t[i] i位置的1出现了几个for (int num : arr) {while (num ! 0) {int rightOne num (-num);t[map.get(rightOne)];num ^ rightOne;}}int ans 0;for (int i 0; i 32; i) {if (t[i] % m ! 0) {if (t[i] % m k) {ans | (1 i);} else {return -1;}}}if (ans 0) {int count 0;for (int num : arr) {if (num 0) {count;}}if (count ! k) {return -1;}}return ans;}public static void mapCreater(HashMapInteger, Integer map) {int value 1;for (int i 0; i 32; i) {map.put(value, i);value 1;}}public static int[] randomArray(int maxKinds, int range, int k, int m) {int ktimeNum randomNumber(range);// 真命天子出现的次数int times Math.random() 0.5 ? k : ((int) (Math.random() * (m - 1)) 1);// 2int numKinds (int) (Math.random() * maxKinds) 2;// k * 1 (numKinds - 1) * mint[] arr new int[times (numKinds - 1) * m];int index 0;for (; index times; index) {arr[index] ktimeNum;}numKinds--;HashSetInteger set new HashSet();set.add(ktimeNum);while (numKinds ! 0) {int curNum 0;do {curNum randomNumber(range);} while (set.contains(curNum));set.add(curNum);numKinds--;for (int i 0; i m; i) {arr[index] curNum;}}// arr 填好了for (int i 0; i arr.length; i) {// i 位置的数我想随机和j位置的数做交换int j (int) (Math.random() * arr.length);// 0 ~ N-1int tmp arr[i];arr[i] arr[j];arr[j] tmp;}return arr;}// [-range, range]public static int randomNumber(int range) {return ((int) (Math.random() * range) 1) - ((int) (Math.random() * range) 1);}public static void main(String[] args) {int kinds 5;int range 30;int testTime 100000;int max 9;System.out.println(测试开始);for (int i 0; i testTime; i) {int a (int) (Math.random() * max) 1; // a 1 ~ 9int b (int) (Math.random() * max) 1; // b 1 ~ 9int k Math.min(a, b);int m Math.max(a, b);// k mif (k m) {m;}int[] arr randomArray(kinds, range, k, m);int ans1 test(arr, k, m);int ans2 onlyKTimes(arr, k, m);if (ans1 ! ans2) {System.out.println(ans1);System.out.println(ans2);System.out.println(出错了);}}System.out.println(测试结束);}}
http://www.pierceye.com/news/93190/

相关文章:

  • 新网站百度有审核期成都 网站建设培训班
  • 在线购物网站的设计成都网站seo费用
  • 访问国外的网站很慢wordpress 电商主题
  • 免费收录网站推广wordpress打开速度分析
  • 成都网站运营wordpress后台
  • 班级建设网站wordpress获取分类的文章
  • 北京建设官方网站常州做网站那家快
  • 网站建设源码包射阳网页设计
  • 做企业网站备案都需要什么织梦 安装网站
  • 查询网站收录命令用wordPress搭建图片库
  • 网站开发的验收标准给几个网址谢谢
  • 手表网站大全网络推广竞价
  • 中创高科官方网站wordpress 页面添加js
  • 平台网站怎么做专业网站设计公司排名
  • 网站开发公司 重庆百度seo标题优化软件
  • wordpress 导入主题网站建设优化广告流量
  • 网店装修网站房屋装修设计费一般多少
  • 微信公众平台制作网站设计网站页面要怎么切图
  • 个人网站 备案 类型小红书笔记推广
  • 门户网站怎么创建网页制作步骤php
  • 六师五家渠市建设局网站wordpress 定时发布插件
  • 深圳外贸网站外贸网站建设安阳网站建设服务
  • wdcp 网站建设做民宿推广都有哪些网站
  • 常见的网站开发环境网站建设的结构
  • 贵阳网站推广优化公司做网站的公司搞什么活动
  • 安徽平台网站建设制作坪山网站设计的公司
  • 如何做挂qq的网站2017网站建设
  • wordpress语言切换网站保定广告设计公司
  • 做网站需要走公司吗运行一个网站要多少钱
  • 怎样可以免费做网站wap网站软件