1.异或
2.字典或集合
3.排序

golang语言采用异或方式,代码如下:

package test22_singlenumber3import ("fmt""testing"
)//go test -v -test.run TestSingleNumber
func TestSingleNumber(t *testing.T) {arr := []int{3, 1, 2, 1, 3, 4, 4, 5}fmt.Println("数组:", arr)fmt.Println("结果:", singleNumber(arr))
}func singleNumber(nums []int) []int {eorsum := 0 //两个单数的按位异或for i := len(nums) - 1; i >= 0; i-- {eorsum ^= nums[i]}rightbit1 := eorsum & ((^eorsum) + 1) //取eorsum最右边的1retone := 0 //其中一个单数for i := len(nums) - 1; i >= 0; i-- {if nums[i]&rightbit1 != 0 {retone ^= nums[i]}}return []int{eorsum ^ retone, retone}
}

敲go test -v -test.run TestSingleNumber命令,结果如下:

评论

2020-06-10:给定一个无序数组,里面数都是成双数的,只有一个数是成单数的,求这个数? 如果上面那题里面有两个单数,怎么求出来?相关推荐

  1. 牛客网:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

    题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 ...

  2. 2020-06-09:给定一个无序数组,里面数都是成双数的,只有一个数是成单数的,求这个数?

    1.异或 2.字典或集合 3.排序 golang语言采用异或方式,代码如下: package test21_singlenumberimport ("fmt""testi ...

  3. 基础算法:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

    这里要注意的是当数字足够大的时候,我们要使用long long形式的类型,用来记录那个最大值 最大值共有四种情况: 三个正数:数字本身越大则乘积越大 两个负数一个正数:负负得正,所以两个负数最小,之积 ...

  4. 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现

    实现该算法主要思想是, 1.两个负数与与一个正数相乘 2.全为最大正数相乘得到最大值 下面用算法实现,时间复杂度为O(n),下面用java实现,不过有一些为0的情况排除下可以,还有一些整形过大可以变为 ...

  5. 求一个无序数组的中位数。

    问题描述 求一个无序数组的中位数. 如:{2,5,4,9,3,6,8,7,1}的中位数为5,{2,5,4,9,3,6,8,7,1,0}的中位数为4和5. 要求:不能使用排序,时间复杂度尽可能低. 提示 ...

  6. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值输入 [1,3,5,7,9,11] 10输出 1,9 3,7 代码: import java.util.HashMap; import java ...

  7. 如何把一个整数转化成数组_「leetcode891」给定一个整数数组 A,考虑 A 的所有非空子序列...

    给定一个整数数组 A ,考虑 A 的所有非空子序列. 对于任意序列 S ,设 S 的宽度是 S 的最大元素和最小元素的差. 返回 A 的所有子序列的宽度之和. 由于答案可能非常大,请返回答案模 10^ ...

  8. 第J题-=数组中等于K的数对(详解) =======给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数

    给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...

  9. 【leetcode】给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff数对。

    给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k ...

最新文章

  1. python解析mht文件_php解析mht文件转换成html的方法
  2. SAP Fiori Launchpad tile里显示的数字的刷新间隔是在服务器端什么地方配置的
  3. java long double精度丢失_long long类型转double类型部分精度丢失问题
  4. 插槽的使用_思维导图
  5. 新来的运维这样用HDFS,CIO都懵了···
  6. “DNAT+云链接+CDN”加速方案,助力出海企业落地生长
  7. fiddler chrome_fiddler抓包教程
  8. 苹果WWDC2021终极剧透!新款Macbook Pro外观大改 iOS 15将发布
  9. 最新PHP精品在线音乐分享网站源码/UI很好看
  10. Python爬取广州链家二手房数据
  11. C++中继承时的重载和重新定义
  12. windows audio错误0x80070005
  13. spamhaus反垃圾邮件联盟黑名单PBL申诉详细步骤
  14. Ring of Elysium 游戏汉化
  15. Bzoj 2563: 阿狸和桃子的游戏 题解
  16. ACM教程 - 卡特兰数(Catalan)算法
  17. KDZD地埋线短路漏电试扎器
  18. tf.layers.flatten()使用
  19. java多线程累加计数
  20. 我会什么?我不会什么?

热门文章

  1. 【雷达检测】基于复杂环境下的雷达目标检测技术(Matlab代码实现)
  2. windows远程桌面连接
  3. H - Identity Card
  4. 广平县北方计算机第一届PS设计大赛
  5. Epub阅读器使用说明书
  6. 他曾被腾讯、百度、金山、遨游等联合封杀,如今他发展的却更好
  7. 计算机无法ghost安装系统安装系统安装,惠普电脑无法安装GHOST系统的修复教程...
  8. 寒假到了,神兽归笼?程序员整治“熊孩子”有妙招
  9. 沪上首个千人区块链产业峰会!POW'ER 2020上海峰会首日精华实录
  10. [Apple][macOS]没有原来的苹果设备接收验证码,怎么激活新的苹果设备(Macbook、iPhone之类)?