首页 > 其他分享 >code top push

code top push

时间:2024-03-05 22:55:40浏览次数:22  
标签:code return IntHeap int top IntSlice func push events

`

type IntHeap struct {
sort.IntSlice
}

func (h *IntHeap) Push(v interface{}) {
h.IntSlice = append(h.IntSlice, v.(int))
}

func (h *IntHeap) push(v int) {
heap.Push(h, v)
}

func (h *IntHeap) Pop() interface{} {
n := len(h.IntSlice) - 1
num := h.IntSlice[n]
h.IntSlice = h.IntSlice[:n]
return num
}

func (h *IntHeap) pop() int {
return heap.Pop(h).(int)
}

func (h *IntHeap) top() int {
return h.IntSlice[0]
}

func maxEvents(events [][]int) int {
sort.Slice(events, func(i, j int) bool {
if events[i][0] < events[j][0] {
return true
} else {
return false
}
})

ans := 0
hp := &IntHeap{} //小顶堆,存储目前可以参加的所有会议的截止时间
index := 0 // maxEvents遍历到的下标
maxDay := events[0][1] //现在遍历到的最大的会议结束的天数
//i代表今天是第几天
for i := events[0][0]; index < len(events) || i <= maxDay; i++ {
	for ; index < len(events) && events[index][0] == i; index++ {
		if maxDay < events[index][1] {
			maxDay = events[index][1]
		}
		hp.push(events[index][1])
	}
	for hp.Len() > 0 && hp.top() < i {
		hp.pop()
	}
	if hp.Len() != 0 {
		ans++
		hp.pop()
	}
	if index == len(events) && hp.Len() == 0 {
		break
	}
}
return ans

}`

标签:code,return,IntHeap,int,top,IntSlice,func,push,events
From: https://www.cnblogs.com/Asuphy/p/18055482

相关文章

  • Codeforces Round 930 (Div. 1)
    Preface虽然难得有Div1的CF,但由于在周四晚上学校要断电就没打这两天有空去补了下发现好像错过了最适合我的一场,AB都是一眼题,C是经典图论建模,D是DS典题没有Counting我直接爽飞,不过估计现场打的话写个ABC差不多了,D的码量还是挺大的A.BitwiseOperationWizard很有意思的一个......
  • leetcode--1976. 到达目的地的方案数(最短路)
    记录12:052024-3-5https://leetcode.cn/problems/number-of-ways-to-arrive-at-destination/通过最短路找到从源点到目标点距离,在更新的过程中,对某个点记录下可以达到最短距离的父亲节点,然后从目标点往回dp就可以了(有种逆向拓扑排序的感觉)当然这是不必要的,在更新最短距离的......
  • 基本操作之——Unicode编码
    自版本18.11后,支持UTF-81.字符转Unicode码tuple_ord('s',Ord)dev_clear_window()dev_disp_text('\'s\'的Unicode码为'+Ord,'window','center','center','black','box_color','#00ffffc0......
  • CodeForces 1540D Inverse Inversions
    洛谷传送门CF传送门小清新题。首先容易发现每个合法的\(b\)唯一对应一个排列,大概就是每个时刻排列元素的相对顺序,然后插入到相应的位置。但是这样太麻烦了。发现题目只要求求单点的\(p\)值。这应该有更简单的方法。考虑令\(b_i\getsi-b_i\)表示\(p_i\)在前缀\(......
  • 开源代码生成模型 StarCoder 2 全新上线!
    BigCode正式推出StarCoder2——一系列新一代的开放源代码大语言模型(LLMs)。这些模型全部基于一个全新、大规模且高品质的代码数据集TheStackv2进行训练。我们不仅公开了所有的模型和数据集,还包括了数据处理和训练代码的详细信息,详情请参阅相关论文。StarCoder2是什么......
  • windows下用Code::blocks gcc/mingw系使用wxWidgets库
    很多Windows下用Code::blocks+wxWidgets的朋友最开始的时候都会因为这个错误无法编译而放弃wx。下面给出详细解决方法:1.到WX的目录下,找到include\wx\platform.h文件,用Codeblocks打开它2.Codeblocks下用菜单栏的Search->Find功能,找到#include"wx/setup.h"一行3.将"wx/set......
  • 2024-selenium-问题一:java.io.IOException: Invalid Status code=403 text=Forbidden
    问题截图:  问题分析: 参考网址:https://blog.csdn.net/weixin_46739493/article/details/134163739问题解决:1、chrome版本为:版本114.0.5735.199(正式版本);driver的版本为:114.0.5735.90; java-seleium版本为:4.0.0-rc-21<dependency>2<groupId>org.......
  • 代码随想录算法训练营day13 | leetcode 239. 滑动窗口最大值、347. 前 K 个高频元素
    目录题目链接:239.滑动窗口最大值-困难题目链接:347.前K个高频元素-中等题目链接:239.滑动窗口最大值-困难题目描述:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。......
  • Codeforces edu 156 C题
    https://codeforces.com/contest/1886/problem/C思路这道题的核心问题是:给你一个字符串s,你要删除k个字母,你要找出删除k个字母后字典序最小的s。为了使字典序最小,我们就应该把字符串删成递增的样子stringtmp="";//tmp用来存删完后的字符串s+='$';//s的末尾加一个比'......
  • 【LeetCode】389_找不同_C
    题目描述给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。https://leetcode.cn/problems/find-the-difference/description/示例示例1:输入:s="abcd",t="abcde"输出:"e"解释:'e'是那......