15天大厂真题带刷 - ZT15小红的区间查询 | Go

小红的区间查询

https://www.nowcoder.com/practice/cbaecf16197a4136b8a593a7a270f4ab

题意

给出一个数组,有2种操作,把第i个位置的数变为x,求前i个位置的数里等于x的数有多少个?

思路

考虑数据范围,n和q都只有200,直接暴力维护就可以。对于操作1,把数组idx-1的值变为x;对于操作2,从0遍历到idx-1,如果当前数等于x,答案加1。是idx-1的原因是数组下标从0开始。扩展:本质是一个单点修改区间查询的问题,如果n,q <=1e5,可以考虑用数据结构维护

Go代码

package main

import (
	"fmt"
)

func main() {
	var n, q, op, idx, x int
	fmt.Scan(&n, &q)
	a := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&a[i])
	}
	for i := 0; i < q; i++ {
		fmt.Scan(&op, &idx, &x)
		idx--
		if op == 1 {
			a[idx] = x
		} else {
			var ans int
			for j := 0; j <= idx; j++ {
				if a[j] == x {
					ans++
				}
			}
			fmt.Println(ans)
		}
	}

}

#牛客创作赏金赛#
15天大厂真题带刷Go题解 文章被收录于专栏

15天大厂真题带刷Golang题解

全部评论

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
喵_coding:年底缺人是短视频营造出来的 而且一般说的也很宽泛 不是特指后端
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务