golang 算法课 给定乱序的0, 1 输出前0 后1
解题思路:
1:暴力法:循环一遍,统计0的个数,然后设置前面为0,后面为1;
2:使用golang的自带的排序接口,面试的话肯定不让用,不过可以说一下,其实就是排序;
3:使用类似快排的方法, 直接见代码:
func zeroOne(nums []int) []int {
if len(nums) == 0 {
return nums
}
l, r := 0, len(nums)-1
for l <= r {
for l <= r && nums[l] == 0 {
l
}
for l <= r && nums[r] == 1 {
r--
}
if l <= r {
nums[l], nums[r] = nums[r], nums[l]
l
r--
}
}
return nums
}
到此这篇关于“golang 算法课 给定乱序的0, 1 输出前0 后1”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!
您可能感兴趣的文章:
golang 算法课 给定乱序的0, 1 输出前0 后1
精通Javascript+jQuery 视频教程 在线观看
golang url 收集
MYSQL数据库中ORDER BY CASE WHEN使用示例
php出现乱码该怎么解决?
《Perl编程24学时教程》笔记第17课 perl的CGI概述
DAY2 GOLANG(二)运算符和程序流程控制
go test 如何输出到控制台_深度剖析 Go 中的 Go 协程 (goroutines) -- Go 的并发
Go-sort对map的value进行排序
golang 深入浅出之 goroutine 理解