报数游戏-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, ","))

}
相关推荐
-芒果酱-15 分钟前
DDA画线算法例题
开发语言·c++·算法
上理考研周导师2 小时前
【数字图像处理】第2章 数字图像处理基础,彩色图像,灰度图像,图像的采样与量化,图像文件格式,灰度直方图
算法
Antonio9152 小时前
【Codeforces】CF 2005 C
开发语言·c++·算法
꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂3 小时前
C语言期中自测试卷
c语言·算法·基础题
墨@#≯7 小时前
感知机及其实践
算法·机器学习·支持向量机
Kalika0-08 小时前
温度转换-C语言
c语言·开发语言·数据结构·算法
梓桐9 小时前
【算法】- 查找 - 散列表查询(哈希表)
c语言·算法·哈希算法·散列表
luthane9 小时前
python 实现algorithm topo卡恩拓扑算法
数据结构·python·算法
Mr_Xuhhh11 小时前
数据结构阶段测试2的一点小补充
android·开发语言·汇编·数据结构·c++·算法
青山瀚海11 小时前
多模态简单了解
深度学习·算法·机器学习·transformer