草庐IT

Golang升序

coder 2024-07-14 原文

我这里有一个 Go 语言问题,与下面我的相比,有没有更好的方法来回答编码 Golang 的答案?

Mangkuk 是由最大尺寸的 Sudu 组成的列表。 Sudu 是连续整数的排列,可能包含重复项。

Cawan 是 Mangkuk,其中每个 Sudu 都按升序排序。 编写函数 MakeCawan(→Mangkuk),将给定的 Mangkuk 排序为 Cawan。

For example,
MakeCawan([21, 20, 18, 20, 18, 20, 19]),
MakeCawan([21, 2000000, 18, 20, 18, 20, 19]),
MakeCawan([21, 20, 18, 20, 18, 20, 1900000])
should produce, respectively,
[18, 18, 19, 20, 20, 20, 21],
[21, 2000000, 18, 18, 19, 20, 20],
[20, 21, 18, 20, 18, 20, 1900000].

package main

    import (
    	"fmt"
    	"sort"
    )

    func main() {
    	sl := []string{"MakeCawan"}
    	sort.Sort(sort.StringSlice(sl))
    	fmt.Println(sl)
    	
    	sl1 := []string{"MakeCawan"}
    	sort.Sort(sort.StringSlice(sl1))
    	fmt.Println(sl1)
    	
    	sl2 := []string{"MakeCawan"}
    	sort.Sort(sort.StringSlice(sl2))
    	fmt.Println(sl2)
    	
    	intSlice := []int{21,20,18,20,18,20,19}
    	sort.Sort(sort.IntSlice(intSlice))
    	fmt.Println(intSlice)

    }

输出:

https://play.golang.org/p/tsE0BtMRos_9

最佳答案

这个问题有点棘手:它不要求您对整个 slice (或 mangkuk 在它自己的术语中)进行排序;它要求您首先识别称为 sudu 的所有连续间隔(可能有重复元素),然后对每个 sudu 进行排序。

func makeCawan(mangkuk []int) []int {
    for now, n := 0, len(mangkuk); now < n; {
        min := mangkuk[now]
        max := min
        head := now
    loop:
        for now++; now < n; now++ {
            switch x := mangkuk[now]; {
            case x < min-1 || x > max+1:
                sort(mangkuk[head:now], min, max)
                break loop
            case x == min-1:
                min = x
            case x == max+1:
                max = x
            }
        }
        if now >= n {
            sort(mangkuk[head:now], min, max)
        }
    }

    return mangkuk
}

Playground :https://play.golang.org/p/z3TGWnWnrVY

关于Golang升序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54733310/

有关Golang升序的更多相关文章

  1. ruby - 按值降序排列散列,然后按升序键入 ruby - 2

    我有这样的哈希trial_hash={"key1"=>1000,"key2"=>34,"key3"=>500,"key4"=>500,"key5"=>500,"key6"=>500}我按值降序排列:my_hash=trial_hash.sort_by{|k,v|v}.reverse我现在是这样理解的:[["key1",1000],["key4",500],["key5",500],["key6",500],["key3",500],["key2",34]]但我希望当值相同时按键的升序排序。我该怎么做?例如:上面的散列将以这种方式排序:[["key1",1000],["key3",500

  2. ruby - Sort_by Ruby,一个降序,一个升序 - 2

    我已经搜索过这个问题的答案,但没有成功,有一个类似的问题,但答案在这种情况下不起作用,它按数字项目排序。SimilarQuestion-Thatdidnotwork我正在尝试使用ruby​​的sort_by对一个项目进行降序排序和另一个升序排序。我只能找到一个。代码如下:#PrimarysortLastNameDescending,withtiesbrokenbysortingAreaofinterest.people=people.sort_by{|a|[a.last_name,a.area_interest]}任何指导肯定会有所帮助。示例数据:输入罗素,逻辑欧拉,图论伽罗瓦,抽象代

  3. ruby - 按升序和降序对多个值进行排序 - 2

    我正在尝试根据不同的属性对一组对象进行排序。其中一些属性我想按升序排序,一些属性按降序排序。我已经能够按升序或降序进行排序,但无法将两者结合起来。这是我正在使用的简单类:classDogattr_reader:name,:genderDOGS=[]definitialize(name,gender)@name=name@gender=genderDOGS然后我可以实例化一些狗,稍后进行分类。@rover=Dog.new("Rover","Male")@max=Dog.new("Max","Male")@fluffy=Dog.new("Fluffy","Female")@cocoa=Do

  4. javascript - 根据整数而不是字符串按升序对数组进行排序 - 2

    我有一个具有这种结构的数组:myArray=[[,[]],[,[]],...];我想根据整数对数组进行排序。不幸的是,当我在myArray上调用.sort()时,它会返回一个根据字符串排序的数组。我该如何解决这个问题? 最佳答案 试试这个myArray.sort(function(a,b){returna[0]-b[0]}) 关于javascript-根据整数而不是字符串按升序对数组进行排序,我们在StackOverflow上找到一个类似的问题: https:

  5. javascript - 按升序排列天数 - 2

    我有一个数组,其中包含唯一的日期名称字符串。日期名称将按随机顺序排列。-例如:["Sun10am","Sat4pm","Sat10am","Wed3pm","Sun4pm"]我想使用javascript对该数组进行排序,使其按升序排列。["Wed3pm","Sat10am","Sat4pm","Sun10am","Sun4pm"]有人可以建议最好的方法吗?谢谢 最佳答案 您可以创建一个以日期名称作为键和值从1增加到7的对象。创建一个辅助函数,它将字符串的第二部分即3pm,10am..作为输入,如果pm12添加到结果中同时将结果除以2

  6. javascript - 在javascript中使用sortBy按值升序排序散列 - 2

    我用了sortByunderscore.js库中的函数。我有散列,我尝试按以下值对它进行排序:varobj={x:2,y:6,z:1,q:4};_.sortBy(obj)但是输出如下:[1,2,4,6]但我需要对其进行排序,并返回具有以下值的键:{z:1,x:2,q:4,y:6}如何使用sortBy返回排序后的哈希值?我注意到sortBy函数返回列表,那么是否有另一个好的解决方案来排序哈希或者我需要实现函数返回排序后的哈希? 最佳答案 在JavaScript中没有排序哈希(对象)这样的东西。您可以做的是将键放入数组中,对其进行迭代并

  7. javascript - 如何对表中的数据进行升序和降序排序 - 2

    我是Reactjs的新手。在这里,我尝试在用户点击图标时对数据进行排序。Technology所以,现在我有了对象数组形式的数据。在此,我有5列,每列都有排序图标。那么,如何使用React实现这个东西?我想按字母顺序排序。我的数据看起来像,[{"id":"5b7d4a566c5fd00507501051","hrmsJdId":null,"companyId":null,"jdName":"Senior/LeadUIDeveloper","jobDescription":null,"technology":java,},{"id":"5b7fb04d6c5fd004efdb826f","

  8. 华为OD机试Golang解题 - 任务总执行时长 - 2

    华为Od必看系列华为OD机试全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理已参加机试人员的实战技巧华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典文章目录华为Od必看系列使用说明本期题目:任务总执行时长题目输入输出示例一输入输出说明go代码实现华为OD其它语言版本

  9. 【编程实践】Golang 获取HTTP请求的IP地址 - 2

    目录Golang获取HTTP请求的IP地址HTTP的发展历史3,HTTP所在的网络层次4,HTTP请求与响应

  10. javascript - 如何在 Firebase 中按升序或降序检索分页子项? - 2

    假设我将firebase用于评论系统,并且我想检索给定主题的评论,但一个主题中有太多评论,我不想一次全部检索它们。我还希望最新的评论显示在顶部。似乎以相反顺序显示firebase记录的唯一方法是全部检索它们,然后反向迭代它们。这在大型数据集上可能会变得非常笨拙,尤其是对于移动客户端。有没有更好的办法?按升序或降序从Firebase查询分页数据的通用和首选解决方案是什么? 最佳答案 更新答案@Tyler回答stackoverflow.com/a/38024909/681290是这个问题的更新和更方便的答案TL;DR如果您想要做的是没有

随机推荐