数组中除一个元素外其他所有元素出现二或三次,找到只出现一次的元素
1、数组中除一个元素外其他所有元素出现二,找到只出现一次的那个元素。
public int singleNumber(int[] nums) {int res = nums[0];for (int i = 1; i < nums.length; i++)res = res ^ nums[i];return res;}
2、数组中除一个元素外其他所有元素出现三次,找到只出现一次的那个元素。
public static int singleNumber(int[] nums) {int len = nums.length, result = 0;for (int i = 0; i < 32; i++) {int sum = 0;for (int j = 0; j < len; j++) {sum += (nums[j] >> i) & 1;}result |= (sum % 3) << i;}return result;}
3、数组中所有元素出现两次,其中有两个元素只出现一次,找出这两个元素。
public static int[] geTwoEle(int[] res){if(res.length==2)return res;int []val=new int[2];int temp=res[0];for(int i=1;i<res.length;i++){temp^=res[i];}//find the leftmost pos where two element is differentint i=0;while(temp!=0)temp>>=++i;i--;int left[]=new int[res.length];int right[]=new int[res.length];int lefti=0;int righti=0;//split val array into two arrays according to the different posfor(int j=0;j<res.length;j++){if(((res[j]>>i)&1)==0){left[lefti++]=res[j];}else{right[righti++]=res[j];}}//in left and right array only one element is different,use ^ to find the elementval[0]=left[0];for(int j=1;j<lefti;j++){val[0]^=left[j];}val[1]=right[0];for(int j=1;j<righti;j++){val[0]^=right[j];}return val;}
数组中除一个元素外其他所有元素出现二或三次,找到只出现一次的元素相关推荐
- 在 PHP 中从数组中删除一个元素
问: 有没有一种简单的方法可以使用 PHP 从数组中删除一个元素,从而使 foreach ($array) 不再包含该元素? 我认为将它设置为 null 会做到这一点,但显然它不起作用. 答1: hu ...
- [jstips]向数组中插入一个元素
向现有数组中插入一个元素是经常会见到的一个需求.你可以: 使用push将元素插入到数组的尾部: 使用unshift将元素插入到数组的头部: 使用splice将元素插入到数组的中间: 上面那些方法都是常 ...
- 遍历strs数组,并判断数组中每一个元素的长度, * 将长度为偶数的元素和长度为奇数的元素分别存放在两个集合中,
package Day08;import java.util.ArrayList;/*** 二* 字符串数组strs中包含字符串{"12","345",&quo ...
- java在原数组中追加一个元素
java在原数组中追加一个元素 /* * 在原数组中追加一个元素 * */ public class Test05 {public static void main(String[] args) {/ ...
- jquery如何删除数组中的一个元素?
jquery删除数组中的一个元素的方法是用 splice 实现的. 举例说明: var arrList = ['a','b','c','d']; arrList.splice(jQuery.inArr ...
- 找到一个数组中每一个元素第一个比它大的元素
一.题目描述 给定义个数组v,对于数组中每一个元素,找到其后面元素中第一个比它大的元素,并且记录在数组v2中返回.例如给定数组v = {1,3,6,-1,2},返回v2={3,6,-1,2,-1}.( ...
- 22、在有序数组中插入一个数值,数组仍然有序——数组
插入数据,有序数组仍然有序 方法一: 在一个数组中完成的操作 代码实现: /*2017年6月19日16:31:52功能:向有序的数组中插入一个数据,但是数据仍然有序 */ #include<st ...
- C语言:向一个有序数组中插入一个数据,并保持数组的有序性。
C语言:向一个有序数组中插入一个数据,保持数组的有序性. #include <stdio.h> //向一个有序数组中插入一个元素,重新实现有序,并输出. int main() {//注意数 ...
- 找出一个数组中唯一一个出现2次的数字
找出一个数组中唯一一个出现2次的数字,不清楚是不是LeetCode上的题.本人默认是LeetCode上的题. 一个数组中有N个数字,但是只有一个数字出现了2次,其他的数字均不相同.这种问题一般应该采用 ...
- 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)
输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).(奇安信-wab前端) 例如,输入的数组为{ 1.-2.3.10. ...
最新文章
- 建军92周年,让我们了解那些先进的军用机器人
- Linux下利用rsync实现多服务器文件同步
- 请给出一个算法,使之对于给定的介于0到k之间的n个整数进行预处理,并能在O(1)时间内,回答出输入的整数中有多少个落在区间[a..b]内,你给出的算法上预处理时间应是O(n+k)。...
- Android Jetpack组件之ViewModel使用
- SQL Server中的锁类型及用法(转载)
- 这头像是代表入职送理发福利吗?
- harmonyos2.0开发者beta,华为鸿蒙 HarmonyOS 2.0 手机开发者 Beta 活动(广州站)报名开启...
- 如何将文件复制到虚拟机中
- 获取浏览访问记录_超级浏览器(替代版),极速访问,免费使用,过期不候
- 安卓模拟器运行python_利用python+Appium 之 如何在设备(模拟器)上自动安装并启动APP...
- unity vr 交互_基于手动的VR / MR交互,用于删除实体
- 记一次 Vue2 迁移 Vue3 的实践总结
- 安装图像标注工具Labelme并使用其制作自己的数据集
- torch.nn与torch.nn.functional
- 苹果6发布时间_苹果11月秋季发布会直播时间几点 App Store提前爆大招
- c语言字符全排列数组,使用c语言递归实现字符串的全排列
- 杰理AC692X---691X,690X,692X芯片差异(2)
- PHP语言弹窗图片,render函数生成图片弹窗的代码示例
- C语言课设实验设备管理系统(大作业)
- GMARK设计奖申报