报数游戏-golang

Go 复制代码
package main

import (
	"fmt"
	"sort"
	"strings"
)

type myItem struct {
	index int
	value int
}

func reflushMap(list []*myItem, value int) []*myItem {
	newList := make([]*myItem, 0)

	startIndex := 1
	for i, item := range list {
		if item.value == value {

			for _, m := range list[i+1:] {
				m.value = startIndex
				startIndex++
				newList = append(newList, m)
			}

			for _, m := range list[:i] {
				m.value = startIndex
				startIndex++
				newList = append(newList, m)
			}

			break
		}

	}

	return newList
}

func main() {
	var M int
	fmt.Scan(&M)

	oldList := make([]*myItem, 0)
	for i := 1; i <= 100; i++ {
		oldList = append(oldList, &myItem{
			index: i,
			value: i,
		})
	}

	indexStrs := make([]string, 0)
	for {
		oldList = reflushMap(oldList, M)
		if len(oldList) < M {
			indexs := make([]int, 0)
			for _, item := range oldList {
				indexs = append(indexs, item.index)
			}
			sort.Ints(indexs)

			for _, item := range indexs {
				indexStrs = append(indexStrs, fmt.Sprintf("%d", item))
			}
			break
		}

	}

	fmt.Println(strings.Join(indexStrs, ","))

}
相关推荐
@小码农23 分钟前
2025年北京海淀区中小学生信息学竞赛第二赛段C++真题
开发语言·数据结构·c++·算法
蓝域小兵38 分钟前
齐次方程组和非齐次方程组有什么区别
人工智能·算法·机器学习
0 0 044 分钟前
CCF-CSP第39次认证第三题——HTTP 头信息(HPACK)【C++】
开发语言·c++·算法
Data_agent1 小时前
1688按图搜索1688商品(拍立淘)API ,Python请求示例
爬虫·python·算法·图搜索算法
汉克老师1 小时前
2023年海淀区中小学信息学竞赛复赛(小学组试题第二题 回文时间 (time))
c++·算法·北京海淀中小学信息竞赛·模拟法
代码雕刻家1 小时前
1.9.课设实验-数据结构-图-校园跑最短路径
c语言·数据结构·算法·图论
white-persist1 小时前
【攻防世界】reverse | re1-100 详细题解 WP
c语言·开发语言·网络·汇编·python·算法·网络安全
.YM.Z2 小时前
【数据结构】:排序(二)——归并与计数排序详解
数据结构·算法·排序
武帝为此2 小时前
【数据结构之树状数组】
数据结构·算法
失败才是人生常态2 小时前
算法题归类学习
学习·算法