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

网站开发+职位描述saas 平台架构做网站

网站开发+职位描述,saas 平台架构做网站,响应式网站wordpress摄影,建站总结报告1 问题 一个整型数组里除了两个数字之外#xff0c;其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 2 分析 第一种方法#xff1a;我们用位运算 我们想到位运算 #xff08;1#xff09; a^a0#xff08;2#xff09;a^0a#xff08;2#xff09;a…1 问题 一个整型数组里除了两个数字之外其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 2 分析 第一种方法我们用位运算 我们想到位运算 1 a^a02a^0a2a^b^ca^(b^c)(a^c)^b 1) 对所有运算进行异或运算最后结果就是两个出现一次的元素异或结果接下来问题演变成了我们知道两个不同数据的异或值那么怎么求出这两个值呢 2) 因为这两个元素不相等所以异或的结果肯定不是0也就是可以再异或的结果中找到1位不为0的位例如异或结果的最后一位为1我们把这个位置标记为index,然后我们把原始数组分为2个数组第一个数组中的每个数组的第index位都是1的数组和每个数组的第index位都是0的数组然后我们再把这个两组数据进行异或处理分别求出的数据就是我们不同的两个数。 第二种方法我们用map,key为元素值如果出现几次放进value里面去然后最后遍历如果value是1的话我们得到2个key就行。 3 代码实现 用异或处理的C版本如下 #include iostream #include vectorusing namespace std;void findApperanceTwoNumber(vectorint input, int num1, int num2) {if (input.size() 2){std::cout input.size() 2 std::endl; return;}int sum 0;//对所有数据进行异或处理for (int i 0; i input.size(); i){sum ^ input[i];}//我们通过index找到这个2个不同元素异或值的位1的位置int index 0;for (int i 0; i 32; i){if (((sum i) 1) 1){index i;break;}}//然后我们遍历数组把每个数据的第index位和1进行异或处理分别得到结果为1和0的2组数据然后把这2组数据分别异或处理的和就是2个不同的数据for (int i 0; i input.size(); i){if (((input[i] index) 1) 1){num1 ^ input[i];}else{num2 ^ input[i];}} }int main() {vectorint v2;v2.push_back(2);v2.push_back(2);v2.push_back(3);v2.push_back(4);v2.push_back(6);v2.push_back(6); int a 0, b 0;findApperanceTwoNumber(v2, a, b);std::cout a is a b is b std::endl; return 0; } 用map处理的C版本如下 #include iostream #include vector #include mapusing namespace std;void findApperanceTwoNumber2(vectorint input, int num1, int num2) {if (input.size() 2){std::cout input.size() 2 std::endl;return;}mapint, int datas;for (int i 0; i input.size(); i){//C里面map如果要通过key获取value的话我们先需要探测map里面是不是有这个key我们可以count函数,这里如果是java版本的话就算key不存在的话我们执行get方法操作得到的null,没关系。if (datas.count(input[i])){if (datas[input[i]] 1){//这里用数组形式是因为如果用insert如果发现key一样的话再次插入会失败我们所以用数组的形式这里是通过key更新valuedatas[input[i]] 2;}}else{ datas[input[i]] 1;}}///然后我们再遍历mapfor (mapint, int::iterator it datas.begin(); it ! datas.end(); it){if (it-second 1){if (num1 0){//这里是获取keynum1 it-first;}else{//这里是获取valuenum2 it-first;}}} }int main() {vectorint v2;v2.push_back(2);v2.push_back(2);v2.push_back(3);v2.push_back(4);v2.push_back(6);v2.push_back(6); int a 0, b 0;findApperanceTwoNumber2(v2, a, b);std::cout a is a b is b std::endl; return 0; } 运行结果如下 a is 3 b is 4 用map处理的java版本如下 import java.io.*; import java.util.ArrayList; import java.util.*;class St {public St() {}ArrayListInteger findApperanceTwoNumber2(int[] datas) {ArrayListInteger list new ArrayListInteger();if (datas null || datas.length 2)return list; HashMapInteger, Integer map new HashMapInteger, Integer();for (int i 0; i datas.length; i) {if (map.containsKey(datas[i])) {if (map.get(datas[i]) 1){map.put(datas[i], 2);}} else {map.put(datas[i], 1);}}SetInteger keys map.keySet();for (int key : keys) {if (map.get(key) 1) {list.add(key);}}return list;} }class test {public static void main (String[] args) throws java.lang.Exception{ArrayListInteger list new ArrayListInteger();St s new St();int [] a {1, 1, 3, 5, 4, 4};list s.findApperanceTwoNumber2(a);for (int i : list){System.out.println(value is i);}} } 运行结果如下 value is 3 value is 54 总结 如果我们有2个不同数的异或值那我们怎么知道这2个数据值呢这里不是说直接知道这2个元素的数组意思不然还要你求干吊 因为这两个元素不相等所以异或的结果肯定不是0也就是可以再异或的结果中找到1位不为0的位例如异或结果的最后一位为1我们把这个位置标记为index,然后我们把原始数组分为2个数组第一个数组中的每个数组的第index位都是1的数组和每个数组的第index位都是0的数组然后我们再把这个两组数据进行异或处理分别求出的数据就是我们不同的两个数。 C版本的map操作我们最好是用数组形式因为数组形式既可以赋值和可以用来进行修改操作如果是用insert函数插入的当key是同样而value不是同样值的时候会失败然后我们获取的话最好也是通过数组形式的key获取但是获取之前我们需要判断key是否存在map里面的key没有如果没在的话直接获取就有问题但是java的话就算没有key,获取的也是null值没关系。 C的话我们map用count(key)函数来判断是否key存在而java的话我么可以用map的containsKey(key)函数判断key是否存在无论在C版本还是java版本我们要对map通过key获取value操作如果不是通过keySet来获取就是这个key必然存在map里面的时候我们都要先用上面的函数进行探测是否包含key,这样代码的健壮性好点。
http://www.pierceye.com/news/666140/

相关文章:

  • 滨州内做网站系统的公司购物网站开发用什么软件
  • 网站建设静态部分报告总结在合肥哪里学网站建设
  • 建站行业现状网易与暴雪合作
  • 网站中添加百度地图购物网站产品做促销能赚钱吗
  • 金融公司 网站开发怎么样建网站卖东西
  • 网站导航栏垂直如何提高你的网站的粘性
  • 直播网站开发接入视频中国建筑招聘官网2022
  • 大连专业企业建站找哪家wordpress 保护wp-login.php
  • 微网站建设哪家便宜想要找个网站做环评公示
  • 建设银行网银网站激活个人简历模板电子版可填写
  • 肃州区建设局网站宁夏百度seo
  • 关于做电影的网站设计西安网站建设制作 熊掌号
  • idc网站建设怎么自己做一个网页链接
  • 网站开发安全模块方案个人网站搭建软件
  • 重庆建设招标造价信息网站个人网站建设与维护
  • 网站备案用户名忘了怎么办嘉兴做外贸网站的公司
  • 1688网站的特点网站制作器手机版下载
  • 兖州网站开发做一个中英文网站多少钱
  • wordpress怎么做网盘站好看的页面图片
  • 建设网站深圳罗湖安徽合肥做网站
  • 一级a做爰片免费网站下载网站快慢由什么决定
  • 网页设计与网站建设 郑州大学网络购物网站备案
  • 美观网站建设哪家好优化大师最新版下载
  • 外贸品牌网站制作wordpress 微信主题
  • 旅游网站开发需求分析网站的根目录的路径
  • easyUI网站开发docker wordpress mysql
  • dede手机网站模板下载黄冈做网站
  • 诸城网站建设葛小燕现在搜索引擎哪个比百度好用
  • 嘉兴做微网站多少钱注册网页需要多少钱
  • 论坛类网站设计大型网站系统解决方案