Golang每日一练(leetDay0046)

news2024/12/28 19:23:50

目录

136. 只出现一次的数字 Single Number  🌟

137. 只出现一次的数字 II Single Number II  🌟🌟

260. 只出现一次的数字 III Single Number III  🌟🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


136. 只出现一次的数字 Single Number

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]
输出: 1

示例 2:

输入: [4,1,2,1,2]
输出: 4

代码1: 用哈希表计数

package main

import "fmt"

func singleNumber(nums []int) int {
	hash := make(map[int]int)
	for _, num := range nums {
		hash[num]++
	}
	for num, count := range hash {
		if count == 1 {
			return num
		}
	}
	return 0
}

func main() {
	nums := []int{2, 2, 1}
	fmt.Println(singleNumber(nums))
	nums = []int{4, 1, 2, 1, 2}
	fmt.Println(singleNumber(nums))
}

代码2: 异或运算

package main

import "fmt"

func singleNumber(nums []int) int {
	res := 0
	for _, num := range nums {
		res ^= num
	}
	return res
}

func main() {
	nums := []int{2, 2, 1}
	fmt.Println(singleNumber(nums))
	nums = []int{4, 1, 2, 1, 2}
	fmt.Println(singleNumber(nums))
}

代码3: 算术运算

package main

import "fmt"

func singleNumber(nums []int) int {
	hash := make(map[int]int)
	sum1, sum2 := 0, 0
	for _, num := range nums {
		hash[num]++
		sum1 += num
	}
	for num, _ := range hash {
		sum2 += 2 * num
	}
	return sum2 - sum1
}

func main() {
	nums := []int{2, 2, 1}
	fmt.Println(singleNumber(nums))
	nums = []int{4, 1, 2, 1, 2}
	fmt.Println(singleNumber(nums))
}

输出:

1
4


137. 只出现一次的数字 II Single Number II

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

示例 1:

输入:nums = [2,2,3,2]
输出:3

示例 2:

输入:nums = [0,1,0,1,0,1,99]
输出:99

提示:

  • 1 <= nums.length <= 3 * 10^4
  • -2^31 <= nums[i] <= 2^31 - 1
  • nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次

进阶:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

代码1: 用哈希表计数

package main

import "fmt"

func singleNumber(nums []int) int {
	hash := make(map[int]int)
	for _, num := range nums {
		hash[num]++
	}
	for num, count := range hash {
		if count == 1 {
			return num
		}
	}
	return 0
}

func main() {
	nums := []int{2, 2, 3, 2}
	fmt.Println(singleNumber(nums))
	nums = []int{0, 1, 0, 1, 0, 1, 99}
	fmt.Println(singleNumber(nums))
}

代码2: 位运算

package main

import "fmt"

func singleNumber(nums []int) int {
	res := 0
	for i := 0; i < 64; i++ {
		sum := 0
		for _, num := range nums {
			sum += (num >> i) & 1
		}
		if sum%3 != 0 {
			res |= 1 << i
		}
	}
	return res
}

func main() {
	nums := []int{2, 2, 3, 2}
	fmt.Println(singleNumber(nums))
	nums = []int{0, 1, 0, 1, 0, 1, 99}
	fmt.Println(singleNumber(nums))
}

 代码3: 算术运算

package main

import "fmt"

func singleNumber(nums []int) int {
	hash := make(map[int]int)
	sum1, sum2 := 0, 0
	for _, num := range nums {
		hash[num]++
		sum1 += num
	}
	for num, _ := range hash {
		sum2 += 3 * num
	}
	return (sum2 - sum1) / 2
}

func main() {
	nums := []int{2, 2, 3, 2}
	fmt.Println(singleNumber(nums))
	nums = []int{0, 1, 0, 1, 0, 1, 99}
	fmt.Println(singleNumber(nums))
}

输出:

3
99


260. 只出现一次的数字 III Single Number III

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?

示例 1:

输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。

示例 2:

输入:nums = [-1,0]
输出:[-1,0]

示例 3:

输入:nums = [0,1]
输出:[1,0]

提示:

  • 2 <= nums.length <= 3 * 10^4
  • -2^31 <= nums[i] <= 2^31 - 1
  • 除两个只出现一次的整数外,nums 中的其他数字都出现两次

代码1: 用哈希表计数

package main

import "fmt"

func singleNumber(nums []int) []int {
	m := make(map[int]int)
	for _, num := range nums {
		m[num]++
	}
	res := make([]int, 0, 2)
	for num, count := range m {
		if count == 1 {
			res = append(res, num)
		}
	}
	return res
}

func main() {
	nums := []int{1, 2, 1, 3, 2, 5}
	fmt.Println(singleNumber(nums))
	nums = []int{-1, 0}
	fmt.Println(singleNumber(nums))
	nums = []int{0, 1}
	fmt.Println(singleNumber(nums))
}

代码2: 位运算

package main

import "fmt"

func singleNumber(nums []int) []int {
	xor := 0
	for _, num := range nums {
		xor ^= num
	}
	mask := 1
	for (xor & mask) == 0 {
		mask <<= 1
	}
	a, b := 0, 0
	for _, num := range nums {
		if num&mask != 0 {
			a ^= num
		} else {
			b ^= num
		}
	}
	return []int{a, b}
}

func main() {
	nums := []int{1, 2, 1, 3, 2, 5}
	fmt.Println(singleNumber(nums))
	nums = []int{-1, 0}
	fmt.Println(singleNumber(nums))
	nums = []int{0, 1}
	fmt.Println(singleNumber(nums))
}

代码3: 分组异或

package main

import "fmt"

func singleNumber(nums []int) []int {
	xor := 0
	for _, num := range nums {
		xor ^= num
	}
	mask := 1
	for (xor & mask) == 0 {
		mask <<= 1
	}
	a, b := 0, 0
	for _, num := range nums {
		if num&mask != 0 {
			a ^= num
		} else {
			b ^= num
		}
	}
	return []int{a, b}
}

func main() {
	nums := []int{1, 2, 1, 3, 2, 5}
	fmt.Println(singleNumber(nums))
	nums = []int{-1, 0}
	fmt.Println(singleNumber(nums))
	nums = []int{0, 1}
	fmt.Println(singleNumber(nums))
}

输出:

[3 5]
[-1 0]
[1 0]


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/ 

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/458625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux docker搭建Zfile

1.下载镜像 docker pull stilleshan/zfile2.创建挂载目录 mkdir -p /opt/docker/zfile #自定义路径3.运行 docker run -d --namezfile --restartalways -p 1111:8080 \-v /opt/docker/zfile/conf:/root/.zfile-v4 \-v /opt/docker/zfile/data:/root/zfile/data \stillesha…

C/C++每日一练(20230425)

目录 1. 成绩分布 ※ 2. 汇总区间 &#x1f31f; 3. 矩阵置零 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 成绩分布 原标题&#xff1a;统计某一单…

基础数据结构-顺序表

顺序表 顺序表定义结构体定义初始化扩容函数打印函数尾插和尾删头插和头删查找函数指定位置插入和删除顺序表销毁 顺序表定义 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表又分为…

图像预处理方法

图像预处理 膨胀腐蚀概述 两个基本的形态学操作是腐 和膨胀。他们 的变体构成了开运算 &#xff0c;闭运算&#xff0c; 梯度等。 根据卷积核的大小前景的所有像素会腐 掉 变为 0 &#xff0c;所以前景物体会变小整幅图像的白色区域会减少。 对于去除白噪声很有用 也可以用来…

推荐系统搭建全程图文攻略

推荐系统搭建全程图文攻略 推荐系统架构简介 整体推荐架构图&#xff1a; 推荐整体从数据处理开始&#xff0c;默认数据从关系型数据到每天增量导入到hive&#xff0c;在hive中通过中间表和调用python文件等一系列操作&#xff0c;将数据处理为算法数学建模的入口数据&#x…

【SVN】在Windows系统上进行SVN的基本操作(检出,更新,提交,分支合并分支,还原,制造冲突以及解决冲突,忽略)

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

其实苹果知道自己离不开中国制造,因此悄悄给自己留了后路

苹果在加速离开中国&#xff0c;不过从苹果的做法却又可以看到它其实很清醒地认识到无法离开中国制造&#xff0c;因此它在力推印度制造的时候&#xff0c;其实并没拼尽全力&#xff0c;深刻认识到印度制造和印度市场与中国的差距。 一、印度制造和印度市场与中国的差距 2022年…

防雷知识:什么是雷电浪涌

浪涌是突然发生并超过典型工作电压的过电压。一般来说&#xff0c;浪涌是电路中短暂的电流、电压或功率波。今天我们就来科普一下什么是雷电浪涌。 什么是浪涌&#xff1f; 浪涌&#xff0c;顾名思义&#xff0c;是一种突然发生并超过典型工作电压的过电压。一般来说&#xf…

工具链和其他-异步模块加载

目录 CMD/AMD Asynchronous Module Definition(AMD异步模块定义&#xff0c;语法风格) Common Module Definition ES6/CommonJS CommonJS ES6 Module 加载器示例 总结 cmd和amd的区别 现在有哪些异步加载方式 整体结构 编程&#xff1a;commonjs es6 module (有可能解…

基于STM32和oneNET云平台的数据采集系统(MQTT协议)

文章目录 前言一、onenet云平台产品创建二、硬件选择三、设计理念四、实战编程1. 传感器部分2. ESP82663. 定时器4. 串口5. MQTT 五、进阶练习 前言 该篇为基于stm32esp8266通过mqtt协议连接onenet物联网云平台&#xff0c;单片机部分将采集到的数据(温湿度、光照强度、压强等…

DX云音乐(安卓)

首先&#xff0c;软件安装好不用注册登录就可以直接使用&#xff0c;在首页这里有很多推荐的热门歌单&#xff0c;比如&#xff0c;有年度热门的DJ歌曲&#xff0c;有抖音热门DJ&#xff0c;有各种跨年晚会&#xff0c;有运动必备的DGM&#xff0c;有90后的经典旋律等等。 还有…

php+vue 校友交流平台

1.普通用户功能分析 &#xff08;1&#xff09;用户注册&#xff1a;用于注册校友录用户。 &#xff08;2&#xff09;用户登录&#xff1a;供校友录用户登录。 &#xff08;3&#xff09;资料修改&#xff1a;修改当前登录使用者信息。 &#xff08;4&#xff09;…

MQTT 5协议中的基础更改(一)

01 协议的基础性变化 MQTT 5是对现有协议规范的重大更新&#xff0c;新版本协议具有以下特征&#xff1a;轻量级、易用性、极强的可扩展性、对移动网络的适用性以及通信参与者的解耦。 02 MQTT仍然是MQTT 如果您熟悉MQTT3.1.1&#xff0c;那么您之前知道的关于MQTT的所有原则…

通用策略03丨RUMI魔改+krange自适应第3版

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 正 文 大家好&#xff0c;今天我们分享2023年度第3期策略——RUMI魔改krange自适应离场第3版迭代。 本期策略是2023年通用系列第3篇。本期主要内容有对RUMI原版的逻辑魔改&#xff0c;其次重点针对kra…

关于Open Shift(OKD) 中 用户认证、权限管理、SCC 管理的一些笔记

写在前面 因为参加考试&#xff0c;会陆续分享一些 OpenShift 的笔记博文内容为 openshift 用户认证和权限管理以及 scc 管理相关笔记学习环境为 openshift v3 的版本&#xff0c;有些旧这里如果专门学习 openshift &#xff0c;建议学习 v4 版本理解不足小伙伴帮忙指正 对每个…

数据库管理新定义:一款纯Web化免费SQL开发工具,免安装

SQL Studio是一款由麦聪软件研发的多数据库管理工具&#xff0c;提供Windows、Linux 和 MacOS三种版本的软件包&#xff0c;支持中英文两种语言。SQL Studio是用Java编写的&#xff0c;默认使用 JDK 8进行编译。 下载看这里: [SQLStudio] (http://www.maicongs.com/#/home/web)…

云HIS(二级医院,乡镇医院,民营医院,标准化HIS医院信息管理系统源码)

传统 HIS&#xff08;基于医院信息系统&#xff09; 和云 HIS&#xff08;基于云计算的医院信息系统&#xff09;各有优缺点&#xff0c;选择哪种系统需要根据具体情况进行权衡。 传统 HIS 系统通常由医院自行开发和维护&#xff0c;适用于医院内部信息化程度较高、数据安全性…

Sql 优化工具

1、背景 对于正在运行的mysql 性能如何&#xff1f;参数设置的是否合理&#xff1f;账号设置的是否存在安全隐患&#xff1f; 对于Sql执行效率又如何&#xff1f;如何了然于胸&#xff1f; show profile, explain&#xff0c;slow query log &#xff0c;索引优化&#xff0…

【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…