1 Star 0 Fork 0

星缘 / arithmetic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.go 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
Yun 提交于 2022-01-15 23:28 . 更新
package main
import (
"fmt"
"time"
)
func rotate(nums []int, k int) {
// k为非负数(存在为0的情况)
l := len(nums)
if k == 0 {
fmt.Println(nums)
return
} else if k > l {
return
}
// 从第0位开始调换
m := 0
a := 0
for {
time.Sleep(time.Second)
fmt.Println("开始m", m)
// 计算调换的位置
if m <= l-1-k {
// 后移的数
nums[a], nums[m+k+a] = nums[m+k+a], nums[a]
m = m + k
fmt.Println("现在(小)", nums)
fmt.Println("循环m", m)
} else {
b := m - (l - k)
fmt.Println("值", b, a, m)
if b == a {
if l/2 == k && l%2 == 0 {
fmt.Println(nums)
a++
m = 0
continue
}
break
}
if b == 0 && a >= l/4 {
break
}
nums[a], nums[b] = nums[b], nums[a]
m = b
fmt.Println("现在(大)", nums)
fmt.Println("循环m", m)
}
}
fmt.Println(nums)
}
func main() {
// fmt.Println(5 % 2)
s := []int{-1}
k := 1
rotate(s, k)
}
// func maxProfit(prices []int) int {
// begin := 0 // 开始的基数下标
// sum := 0 // 总额
// for k, v := range prices {
// if v < prices[begin] {
// // 小于的话就要切换基数
// begin = k
// continue
// } else {
// sum = sum + v - prices[begin]
// begin = k
// }
// }
// return sum
// }
// func main() {
// s := []int{1, 5, 9,6,7}
// g := maxProfit(s)
// fmt.Println(g)
// }
Go
1
https://gitee.com/yun-ink/arithmetic.git
git@gitee.com:yun-ink/arithmetic.git
yun-ink
arithmetic
arithmetic
master

搜索帮助