2020-06-10:给定一个无序数组,里面数都是成双数的,只有一个数是成单数的,求这个数? 如果上面那题里面有两个单数,怎么求出来?
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:给定一个无序数组,里面数都是成双数的,只有一个数是成单数的,求这个数? 如果上面那题里面有两个单数,怎么求出来?相关推荐
- 牛客网:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 ...
- 2020-06-09:给定一个无序数组,里面数都是成双数的,只有一个数是成单数的,求这个数?
1.异或 2.字典或集合 3.排序 golang语言采用异或方式,代码如下: package test21_singlenumberimport ("fmt""testi ...
- 基础算法:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
这里要注意的是当数字足够大的时候,我们要使用long long形式的类型,用来记录那个最大值 最大值共有四种情况: 三个正数:数字本身越大则乘积越大 两个负数一个正数:负负得正,所以两个负数最小,之积 ...
- 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现
实现该算法主要思想是, 1.两个负数与与一个正数相乘 2.全为最大正数相乘得到最大值 下面用算法实现,时间复杂度为O(n),下面用java实现,不过有一些为0的情况排除下可以,还有一些整形过大可以变为 ...
- 求一个无序数组的中位数。
问题描述 求一个无序数组的中位数. 如:{2,5,4,9,3,6,8,7,1}的中位数为5,{2,5,4,9,3,6,8,7,1,0}的中位数为4和5. 要求:不能使用排序,时间复杂度尽可能低. 提示 ...
- 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)
题目描述 给定一个整数数组,找出其中两个数相加等于目标值输入 [1,3,5,7,9,11] 10输出 1,9 3,7 代码: import java.util.HashMap; import java ...
- 如何把一个整数转化成数组_「leetcode891」给定一个整数数组 A,考虑 A 的所有非空子序列...
给定一个整数数组 A ,考虑 A 的所有非空子序列. 对于任意序列 S ,设 S 的宽度是 S 的最大元素和最小元素的差. 返回 A 的所有子序列的宽度之和. 由于答案可能非常大,请返回答案模 10^ ...
- 第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 ...
- 【leetcode】给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff数对。
给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k ...
最新文章
- python解析mht文件_php解析mht文件转换成html的方法
- SAP Fiori Launchpad tile里显示的数字的刷新间隔是在服务器端什么地方配置的
- java long double精度丢失_long long类型转double类型部分精度丢失问题
- 插槽的使用_思维导图
- 新来的运维这样用HDFS,CIO都懵了···
- “DNAT+云链接+CDN”加速方案,助力出海企业落地生长
- fiddler chrome_fiddler抓包教程
- 苹果WWDC2021终极剧透!新款Macbook Pro外观大改 iOS 15将发布
- 最新PHP精品在线音乐分享网站源码/UI很好看
- Python爬取广州链家二手房数据
- C++中继承时的重载和重新定义
- windows audio错误0x80070005
- spamhaus反垃圾邮件联盟黑名单PBL申诉详细步骤
- Ring of Elysium 游戏汉化
- Bzoj 2563: 阿狸和桃子的游戏 题解
- ACM教程 - 卡特兰数(Catalan)算法
- KDZD地埋线短路漏电试扎器
- tf.layers.flatten()使用
- java多线程累加计数
- 我会什么?我不会什么?
热门文章
- 【雷达检测】基于复杂环境下的雷达目标检测技术(Matlab代码实现)
- windows远程桌面连接
- H - Identity Card
- 广平县北方计算机第一届PS设计大赛
- Epub阅读器使用说明书
- 他曾被腾讯、百度、金山、遨游等联合封杀,如今他发展的却更好
- 计算机无法ghost安装系统安装系统安装,惠普电脑无法安装GHOST系统的修复教程...
- 寒假到了,神兽归笼?程序员整治“熊孩子”有妙招
- 沪上首个千人区块链产业峰会!POW'ER 2020上海峰会首日精华实录
- [Apple][macOS]没有原来的苹果设备接收验证码,怎么激活新的苹果设备(Macbook、iPhone之类)?