当前位置: 首页 > article >正文

Golang | Leetcode Golang题解之第502题IPO

题目:

题解:

func findMaximizedCapital(k, w int, profits, capital []int) int {
    n := len(profits)
    type pair struct{ c, p int }
    arr := make([]pair, n)
    for i, p := range profits {
        arr[i] = pair{capital[i], p}
    }
    sort.Slice(arr, func(i, j int) bool { return arr[i].c < arr[j].c })

    h := &hp{}
    for cur := 0; k > 0; k-- {
        for cur < n && arr[cur].c <= w {
            heap.Push(h, arr[cur].p)
            cur++
        }
        if h.Len() == 0 {
            break
        }
        w += heap.Pop(h).(int)
    }
    return w
}

type hp struct{ sort.IntSlice }
func (h hp) Less(i, j int) bool  { return h.IntSlice[i] > h.IntSlice[j] }
func (h *hp) Push(v interface{}) { h.IntSlice = append(h.IntSlice, v.(int)) }
func (h *hp) Pop() interface{}   { a := h.IntSlice; v := a[len(a)-1]; h.IntSlice = a[:len(a)-1]; return v }

http://www.kler.cn/a/369228.html

相关文章:

  • 监控易FAQ:批量新增监测点和设备
  • 通过conda install -c nvidia cuda=“11.3.0“ 安装低版本的cuda,但是却安装了高版本的12.4.0
  • 深度学习(一)基础:神经网络、训练过程与激活函数(1/10)
  • Maven:详解 clean 和 install 命令的使用
  • 机器学习 - 概述、数据集、Scikit-learn
  • 清华面试文稿
  • 嵌入式1_ARM学习(六)——Makefile
  • 【GPIO】2.ADC配置错误,还是能得到电压数据
  • CRC 校验码
  • 【iOS】知乎日报第一周总结
  • Vue3_开启全局websocket
  • Qt6切换音轨
  • ffmpeg视频滤镜:均值模糊-boxblur
  • MAN Truck Bus EDI 需求分析
  • Flutter Column组件实战案例
  • 2024 最新 frida技术栈 第一部分
  • Linux云服务器安装Docker、MySQL、Redis
  • 国产系统安装Oracle报错处理
  • 利用 Google AI 工具提升应用智能化:ML Kit、TensorFlowLite、Cloud Vision、AutoML、Gemini
  • 手机折叠屏贴膜应用
  • 【AI日记】24.10.27 了解AI的未来
  • 0基础学java之Day16
  • 缓存预取文章比较分析
  • 来源爬虫程序调研报告
  • 【山西】《信息化项目软件运维费用测算指南》(DB 14/T 2163-2020)-省市费用标准解读系列01
  • 【Vue】word / excel / ppt / pdf / 视频(mp4,mov) 预览