伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

2021-02-28:给定一个整型数组arr,和一个整数num。某个arr中的子数组sub,如果想达

来源:本站原创 浏览:93次 时间:2022-11-12

2021-02-28:给定一个整型数组arr,和一个整数num。某个arr中的子数组sub,如果想达标,必须满足:sub中最大值 – sub中最小值 <= num,返回arr中达标子数组的数量。

福哥答案2021-02-28:

采用两个双端队列,存序号。maxWindow从大到小,minWindow从小到大。
1.两个双端队列同时右扩。当最大值-最小值大于sum,退出循环。
2.计数。
3.删除双端队列左边的过期序号。
有代码。

代码用golang编写,代码如下:

package mainimport (    "container/list"    "fmt")func main() {    arr := []int{1, 2}    sum := 6    ret := num(arr, sum)    fmt.Println(ret)}func num(arr []int, sum int) int {    arrLen := len(arr)    if arrLen == 0 || sum < 0 {        return 0    }    count := 0    maxWindow := list.New().Init()    minWindow := list.New().Init()    R := 0    for L := 0; L < arrLen; L++ {        for R < arrLen {            //右扩            for maxWindow.Len() > 0 && arr[maxWindow.Back().Value.(int)] <= arr[R] {                maxWindow.Remove(maxWindow.Back())            }            maxWindow.PushBack(R)            //右扩            for minWindow.Len() > 0 && arr[minWindow.Back().Value.(int)] >= arr[R] {                minWindow.Remove(minWindow.Back())            }            minWindow.PushBack(R)            //如果最大值-最小值>sum,就不右扩了。            if arr[maxWindow.Front().Value.(int)]-arr[minWindow.Front().Value.(int)] > sum {                break            } else {                R++            }        }        //计数        count += R - L        //删除过期窗口数据        if maxWindow.Front().Value.(int) == L {            maxWindow.Remove(maxWindow.Front())        }        if minWindow.Front().Value.(int) == L {            minWindow.Remove(minWindow.Front())        }    }    return count}

执行结果如下:


左神java代码
评论

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net