golang数组-----寻找数组中缺失的整数方法
问题:由n-1个整数组成的未排序数组,元素都是1~n的不同整数,找出其中缺失的整数
方法一:
思路:是原数组的和 减去 丢失元素后的数组的和,就得到丢失的元素了
代码如下:
package main import ( "errors" "fmt" ) func getMissingElement(arr []int) int { var sumA, sumB int if arr == nil || len(arr) <= 0 { errors.New("空数组") } for k, v := range arr { sumA += v sumB += k } sumB = sumB + len(arr)*2 + 1 return sumB - sumA } func main() { var arr []int arr = []int{1, 3, 2, 6, 5, 7, 8} fmt.Println(getMissingElement(arr)) }
结果:4
补充:golang菜鸟常见的坑----golang切片与数组
切片与数组的区别:
数组(array:=[len]int{})一旦声明定义,便会有固定的长度(len),固定的容量(cap),且数组不能修改长度。
切片(slice:=[]int{})定义之后,长度(len)、容量(cap)可以不固定!
如下图所示:slice s再声明之后还可以追加元素。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
Golang的md5 hash计算操作
Golang计算md5值的方法都是接收byte型slice([]byte).而且使用习惯上也觉得略奇怪. 看了好几个例子才看懂. 感觉Golang标准库在设计这些模块的时候,都会考虑使用带New关键字工厂生成一个该类型的结构体对象.然后再使用改对象的方法进行操作. md5包就是这样,来看例子: s := "api_key" + ApiKey + "param" + Param + "time" + time + "version&quo
-
golang gin 框架 异步同步 goroutine 并发操作
goroutine机制可以方便地实现异步处理 package main import ( "log" "time" "github.com/gin-gonic/gin" ) func main() { // 1.创建路由 // 默认使用了2个中间件Logger(), Recovery() r := gin.Default() // 1.异步 r.GET("/long_async", func(c *gin.Context) {
-
Golang数组的传递详解
概念介绍 数组与切片 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列.数组长度最大为2Gb,它是值类型.切片是对数组一个连续片段的引用,所以切片是一个引用类型. 按值传递和按引用传递 Go语言中函数的参数有两种传递方式,按值传递和按引用传递.Go默认使用按值传递来传递参数,也就是传递参数的副本.在函数中对副本的值进行更改操作时,不会影响到原来的变量. 按引用传递其实也可以称作"按值传递",只不过该副本是一个地址的拷贝,通过它可以修改这个值所指向的地址上的值. Go语言中,在函
-
Golang中的参数传递示例详解
前言 本文主要给大家介绍了关于Golang参数传递的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 关于参数传递,Golang文档中有这么一句: after they are evaluated, the parameters of the call are passed by value to the function and the called function begins execution. 函数调用参数均为值传递,不是指针传递或引用传递.经测试引申出来,
-
浅谈Golang的方法传递值应该注意的地方
其实最近看了不少Golang接口以及方法的阐述都有一个地方没说得特别明白.就是在Golang编译隐式转换传递给方法使用的时候,和调用函数时的区别. 我们都知道,在我们为一个类型变量申明了一个方法的时候,我们可以使用类似于self.method来调用这个方法,而且无论你申明的方法的接收器是指针接收器还是值接收器,Golang都可以帮你隐式转换为正确的值供方法使用. 让我们来看一个例子: package main import "fmt" type duration int func (d
-
golang数组-----寻找数组中缺失的整数方法
问题:由n-1个整数组成的未排序数组,元素都是1~n的不同整数,找出其中缺失的整数 方法一: 思路:是原数组的和 减去 丢失元素后的数组的和,就得到丢失的元素了 代码如下: package main import ( "errors" "fmt" ) func getMissingElement(arr []int) int { var sumA, sumB int if arr == nil || len(arr) <= 0 { errors.New(&qu
-
golang修改结构体中的切片值方法
golang修改结构体中的切片值,直接传结构体地址就可以 package main import "fmt" type rspInfo struct { KeyWords string `json:"key_words"` Value []string `json:"value"` } func setSlice(te *[]string){ str := "12" *te = append(*te,str) } //结构提传
-
C++通过自定义函数找出一个整数数组中第二大数的方法
本文实例讲述了C++通过自定义函数找出一个整数数组中第二大数的方法.分享给大家供大家参考.具体实现方法如下: const int MINNUMBER = -32767 ; //2字节的Int 0x8000-1, //4字节的Int 0x80000000-1 -2147483647 int find_sec_max( int data[] , int count) { int maxnumber = data[0] ; int sec_max = MINNUMBER ; for ( int i =
-
讲解Python3中NumPy数组寻找特定元素下标的两种方法
引子 Matlab中有一个函数叫做find,可以很方便地寻找数组内特定元素的下标,即:Find indices and values of nonzero elements. 这个函数非常有用.比如,我们想计算图1中点Q(x0, y0)抛物线的最短距离.一个可以实施的方法是:计算出抛物线上所有点到Q点的距离,找到最小值,用find函数找到最小值对应的下标,即M点横坐标和纵坐标对应的元素的下标,M点到Q点的距离就是最短距离. 首先给出Matlab使用find函数实现的代码: a = linspac
-
Go语言题解LeetCode724寻找数组的中心下标
目录 题目描述 思路分析 AC 代码 题目描述 724. 寻找数组的中心下标 - 力扣(LeetCode) (leetcode-cn.com) 给你一个整数数组 nums ,请计算数组的 中心下标 . 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和. 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素.这一点对于中心下标位于数组最右端同样适用. 如果数组有多个中心下标,应该返回 最靠近左边 的那一个.如果数组不存在中心下标,返回 -
-
C#求数组中元素全排列的方法
本文实例讲述了C#求数组中元素全排列的方法.分享给大家供大家参考.具体如下: 1.算法描述 全排列的第一项是该数组的升序排列,最后一项是该数组的降序排列.本文中用到的了一个函数FindNextArray:从升序排列开始,不断使用函数FindNextArray,可以遍历全部排列,最终到达数组中元素的降序排列. FindNextArray函数的实现思路: 设有数组array为原数组的一个排列 1)找出数组的最大值 2)从后向前找:找到第一组array[i]>array[i-1]的数,以i位置为sig
-
js中数组插入、删除元素操作的方法
实例如下: /* * 删除数组元素:Array.removeArr(index) */ Array.prototype.removeArr = function (index) { if (isNaN(index) || index>= this.length) { return false; } this.splice(index, 1); } /* * 插入数组元素:Array.insertArr(dx) */ Array.prototype.insertArr = function (in
-
PHP获取数组中单列值的方法
本文实例讲述了PHP获取数组中单列值的方法.分享给大家供大家参考,具体如下: PHP中获取数组中单列的值如下: 利用PHP中的数组函数 array_column():返回数组中某个单列的值.(PHP 5.5+适用) 语法: array_column(array,column_key,index_key); 参数: array : 必需,规定必须为多维数组: column_key : 必需,需要返回的值的键名:可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值.该参数也可以是 NULL,
-
numpy中实现ndarray数组返回符合特定条件的索引方法
在numpy的ndarray类型中,似乎没有直接返回特定索引的方法,我只找到了where函数,但是where函数对于寻找某个特定值对应的索引很有用,对于返回一定区间内值的索引不是很有效,至少我没有弄明白应该如何操作尴尬.下面先说一下where函数的用法吧. (1)where函数的使用场景: 例如现在我生成了一个数组: import numpy as np arr=np.array([1,1,1,134,45,3,46,45,65,3,23424,234,12,12,3,546,1,2]) 现在a
-
Python3删除排序数组中重复项的方法分析
本文实例讲述了Python3删除排序数组中重复项的方法.分享给大家供大家参考,具体如下: 给定一个排序数组,你需要在[原地]删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在[原地]修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums =
随机推荐
- 简单讲解AngularJS的Routing路由的定义与使用
- jquery 新建的元素事件绑定问题解决方案
- return false,对阻止事件默认动作的一些测试代码
- 自动完成的搜索框javascript实现
- js组件SlotMachine实现图片切换效果制作抽奖系统
- 扩展ASP.NET MVC三层框架且使用StructureMap实现依赖注入1-Model层
- php escape URL编码
- PHPUnit PHP测试框架安装方法
- 如何让div span等元素能响应键盘事件操作指南
- 深入理解Node.js 事件循环和回调函数
- JavaScript多并发问题如何处理
- linux bash shell中case语句的实例
- 介绍JavaScript中Math.abs()方法的使用
- Android 下载网络图片并显示到本地
- c#图片缩放图片剪切功能实现(等比缩放)
- 快速了解Java中NIO核心组件
- 在Java Web项目中添加定时任务的方法
- jQuery+ajax读取json数据并按照价格排序示例
- MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)
- Linux文本查找命令find的用法详解