国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python每日一練(20230505) 課程表 Course Schedule III/IV

這篇具有很好參考價(jià)值的文章主要介紹了Python每日一練(20230505) 課程表 Course Schedule III/IV。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Python每日一練(20230505) 課程表 Course Schedule III/IV

目錄

3. 課程表 Course Schedule III

4. 課程表 Course Schedule IV

?? 每日一練刷題專欄???

Golang每日一練 專欄

Python每日一練 專欄

C/C++每日一練 專欄

Java每日一練 專欄


3. 課程表 Course Schedule III

這里有?n?門不同的在線課程,按從?1?到?n?編號(hào)。給你一個(gè)數(shù)組?courses?,其中?courses[i] = [durationi, lastDayi]?表示第?i?門課將會(huì)?持續(xù)?上?durationi?天課,并且必須在不晚于?lastDayi?的時(shí)候完成。

你的學(xué)期從第?1?天開始。且不能同時(shí)修讀兩門及兩門以上的課程。

返回你最多可以修讀的課程數(shù)目。

示例 1:

輸入:courses = [[100, 200], [200, 1300], [1000, 1250], [2000, 3200]]
輸出:3
解釋:
這里一共有 4 門課程,但是你最多可以修 3 門:
首先,修第 1 門課,耗費(fèi) 100 天,在第 100 天完成,在第 101 天開始下門課。
第二,修第 3 門課,耗費(fèi) 1000 天,在第 1100 天完成,在第 1101 天開始下門課程。
第三,修第 2 門課,耗時(shí) 200 天,在第 1300 天完成。
第 4 門課現(xiàn)在不能修,因?yàn)閷?huì)在第 3300 天完成它,這已經(jīng)超出了關(guān)閉日期。

示例 2:

輸入:courses = [[1,2]]
輸出:1

示例 3:

輸入:courses = [[3,2],[4,3]]
輸出:0

提示:

  • 1 <= courses.length <= 10^4
  • 1 <= durationi, lastDayi?<= 10^4

代碼:?貪心算法

package main

import (
	"fmt"
	"sort"
)

func scheduleCourse(courses [][]int) int {
	// 按照截止日期升序排序
	sort.Slice(courses, func(i, j int) bool {
		return courses[i][1] < courses[j][1]
	})

	time := 0
	selected := make([][]int, 0)
	for _, c := range courses {
		if time+c[0] <= c[1] {
			selected = append(selected, []int{c[0], c[1]})
			time += c[0]
			sort.Slice(selected, func(i, j int) bool {
				return selected[i][0] > selected[j][0]
			})
		} else if len(selected) > 0 && c[0] < selected[0][0] {
			time += c[0] - selected[0][0]
			selected[0] = []int{c[0], c[1]}
			sort.Slice(selected, func(i, j int) bool {
				return selected[i][0] > selected[j][0]
			})
		}
	}

	return len(selected)
}

func main() {
	courses := [][]int{{100, 200}, {200, 1300}, {1000, 1250}, {2000, 3200}}
	fmt.Println(scheduleCourse(courses))
	courses = [][]int{{1, 2}}
	fmt.Println(scheduleCourse(courses))
}

輸出:

3
1


4. 課程表 Course Schedule IV

你總共需要上?numCourses?門課,課程編號(hào)依次為?0?到?numCourses-1?。你會(huì)得到一個(gè)數(shù)組?prerequisite?,其中?prerequisites[i] = [ai, bi]?表示如果你想選?bi?課程,你?必須?先選?ai?課程。

  • 有的課會(huì)有直接的先修課程,比如如果想上課程?1?,你必須先上課程?0?,那么會(huì)以?[0,1]?數(shù)對(duì)的形式給出先修課程數(shù)對(duì)。

先決條件也可以是?間接?的。如果課程?a?是課程?b?的先決條件,課程?b?是課程?c?的先決條件,那么課程?a?就是課程?c?的先決條件。

你也得到一個(gè)數(shù)組?queries?,其中?queries[j] = [uj, vj]。對(duì)于第?j?個(gè)查詢,您應(yīng)該回答課程?uj?是否是課程?vj?的先決條件。

返回一個(gè)布爾數(shù)組?answer?,其中?answer[j]?是第?j?個(gè)查詢的答案。

示例 1:

Python每日一練(20230505) 課程表 Course Schedule III/IV

輸入:numCourses = 2, prerequisites = [[1,0]], queries = [[0,1],[1,0]]
輸出:[false,true]
解釋:課程 0 不是課程 1 的先修課程,但課程 1 是課程 0 的先修課程。

示例 2:

輸入:numCourses = 2, prerequisites = [], queries = [[1,0],[0,1]]
輸出:[false,false]
解釋:沒有先修課程對(duì),所以每門課程之間是獨(dú)立的。

示例 3:

Python每日一練(20230505) 課程表 Course Schedule III/IV

輸入:numCourses = 3, prerequisites = [[1,2],[1,0],[2,0]], queries = [[1,0],[1,2]]
輸出:[true,true]

提示:

  • 2 <= numCourses <= 100
  • 0 <= prerequisites.length <= (numCourses * (numCourses - 1) / 2)
  • prerequisites[i].length == 2
  • 0 <= ai, bi?<= n - 1
  • ai?!= bi
  • 每一對(duì)?[ai, bi]?都?不同
  • 先修課程圖中沒有環(huán)。
  • 0 <= ui, vi?<= n - 1
  • ui != vi

代碼:

package main

import "fmt"

func checkIfPrerequisite(numCourses int, prerequisites [][]int, queries [][]int) []bool {
	// 構(gòu)建課程圖
	n := numCourses
	graph := make([][]int, n)
	inDegree := make([]int, n)
	for _, p := range prerequisites {
		ai, bi := p[0], p[1]
		graph[ai] = append(graph[ai], bi)
		inDegree[bi]++
	}

	// BFS 拓?fù)渑判?	queue := make([]int, 0)
	for i := 0; i < n; i++ {
		if inDegree[i] == 0 {
			queue = append(queue, i)
		}
	}
	successors := make([][]int, n)
	for len(queue) > 0 {
		node := queue[0]
		queue = queue[1:]
		for _, neighbor := range graph[node] {
			inDegree[neighbor]--
			if inDegree[neighbor] == 0 {
				queue = append(queue, neighbor)
			}
			// 記錄 successor 節(jié)點(diǎn)
			successors[node] = append(successors[node], neighbor)
			for _, s := range successors[neighbor] {
				successors[node] = append(successors[node], s)
			}
		}
	}

	// 對(duì)每個(gè)查詢進(jìn)行檢查
	result := make([]bool, len(queries))
	for i, q := range queries {
		ui, vi := q[0], q[1]
		for _, s := range successors[ui] {
			if s == vi {
				result[i] = true
				break
			}
		}
	}
	return result
}

func main() {
	numCourses := 2
	prerequisites := [][]int{{1, 0}}
	queries := [][]int{{0, 1}, {1, 0}}
	fmt.Println(checkIfPrerequisite(numCourses, prerequisites, queries))
	prerequisites = [][]int{}
	queries = [][]int{{1, 0}, {0, 1}}
	fmt.Println(checkIfPrerequisite(numCourses, prerequisites, queries))
}

輸出:

[false true]
[false false]


?? 每日一練刷題專欄???

? 持續(xù),努力奮斗做強(qiáng)刷題搬運(yùn)工!

?? 點(diǎn)贊,你的認(rèn)可是我堅(jiān)持的動(dòng)力!?

???收藏,你的青睞是我努力的方向!?

? 評(píng)論,你的意見是我進(jìn)步的財(cái)富!??

??主頁:https://hannyang.blog.csdn.net/文章來源地址http://www.zghlxwxcb.cn/news/detail-435017.html

Python每日一練(20230505) 課程表 Course Schedule III/IV

Golang每日一練 專欄

Python每日一練(20230505) 課程表 Course Schedule III/IV

Python每日一練 專欄

Python每日一練(20230505) 課程表 Course Schedule III/IV

C/C++每日一練 專欄

Python每日一練(20230505) 課程表 Course Schedule III/IV

Java每日一練 專欄

到了這里,關(guān)于Python每日一練(20230505) 課程表 Course Schedule III/IV的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【力扣熱題100】207. 課程表 python 拓?fù)渑判? decoding=
  • LeetCode:207. 課程表、210. 課程表 II(拓?fù)渑判?C++)

    目錄 207. 課程表 題目描述: 實(shí)現(xiàn)代碼與解析: 拓?fù)渑判?210. 課程表 II 題目描述: 實(shí)現(xiàn)代碼與解析: 拓?fù)渑判?原理思路: ????????你這個(gè)學(xué)期必須選修? numCourses ?門課程,記為? 0 ?到? numCourses - 1 ?。 在選修某些課程之前需要一些先修課程。 先修課程按數(shù)組? prereq

    2024年02月09日
    瀏覽(21)
  • 自制課程表小程序

    自制課程表小程序

    微信開發(fā)者工具:穩(wěn)定版 Stable Build 根據(jù)自己電腦的系統(tǒng)下載對(duì)應(yīng)的版本 完整代碼連接: https://pan.baidu.com/s/1VbgPOS6CUOae8vg2axhGIg?pwd=hk9e 提取碼:hk9e 先把完整代碼的壓縮包解壓,并記住這個(gè)路徑,后面要用 1.打開下載好的微信開發(fā)工具, 注意不要用游客登錄 ,我一開始就是游客

    2024年02月09日
    瀏覽(37)
  • leetcode207. 課程表

    你這個(gè)學(xué)期必須選修 numCourses 門課程,記為 0 到 numCourses - 1 。 在選修某些課程之前需要一些先修課程。 先修課程按數(shù)組 prerequisites 給出,其中 prerequisites[i] = [ai, bi] ,表示如果要學(xué)習(xí)課程 ai 則 必須 先學(xué)習(xí)課程 bi 。 例如,先修課程對(duì) [0, 1] 表示:想要學(xué)習(xí)課程 0 ,你需要先

    2023年04月24日
    瀏覽(21)
  • leetcode 630. 課程表 III

    這里有 n 門不同的在線課程,按從 1 到 n 編號(hào)。給你一個(gè)數(shù)組 courses ,其中 courses[i] = [durationi, lastDayi] 表示第 i 門課將會(huì) 持續(xù) 上 durationi 天課,并且必須在不晚于 lastDayi 的時(shí)候完成。 你的學(xué)期從第 1 天開始。且不能同時(shí)修讀兩門及兩門以上的課程。 返回你最多可以修讀的課

    2024年02月16日
    瀏覽(13)
  • 【圖論】Leetcode 207. 課程表【中等】

    你這個(gè)學(xué)期必須選修 numCourses 門課程,記為 0 到 numCourses - 1 。 在選修某些課程之前需要一些先修課程。 先修課程按數(shù)組 prerequisites 給出,其中 prerequisites[i] = [ai, bi] ,表示如果要學(xué)習(xí)課程 ai 則 必須 先學(xué)習(xí)課程 bi 。 例如,先修課程對(duì) [0, 1] 表示:想要學(xué)習(xí)課程 0 ,你需要先

    2024年04月14日
    瀏覽(26)
  • 微信小程序?qū)崿F(xiàn)課程表

    微信小程序?qū)崿F(xiàn)課程表

    2.1 獲取當(dāng)前日期一周數(shù)據(jù) Date.getDay(): getDay() 方法返回指定日期是星期幾(從 0 到 6,星期日為 0,星期一為 1,依此類推。)。 Date.getDate(): getDate() 方法返回指定日期在月中的第幾天(從 1 到 31)。 Date.setDate(day): setDate() 方法將月份中的某一天設(shè)置為日期對(duì)象。 Date.getFullYear(

    2024年02月09日
    瀏覽(25)
  • java實(shí)現(xiàn)課程表 II

    題目: 現(xiàn)在你總共有? numCourses ?門課需要選,記為? 0 ?到? numCourses - 1 。給你一個(gè)數(shù)組? prerequisites ?,其中? prerequisites[i] = [ai, bi] ?,表示在選修課程? ai ?前? 必須 ?先選修? bi ?。 例如,想要學(xué)習(xí)課程? 0 ?,你需要先完成課程? 1 ?,我們用一個(gè)匹配來表示: [0,1] ?。

    2024年02月09日
    瀏覽(17)
  • vue實(shí)現(xiàn)動(dòng)態(tài)課程表(TimeTable)

    vue實(shí)現(xiàn)動(dòng)態(tài)課程表(TimeTable)

    ? (1)動(dòng)態(tài)生成課程節(jié)數(shù)、時(shí)間周期? ? ? ? (2)遇到學(xué)科相等的可進(jìn)行行合并、已解決合并后表格變形問題 (1)moment

    2024年02月04日
    瀏覽(16)
  • 刷題筆記25——圖論課程表

    為了最終理解你所不理解的,你必須經(jīng)歷一條愚昧無知的道路。為了占有你從未占有的東西,你必須經(jīng)歷被剝奪的道路。為了達(dá)到你現(xiàn)在所不在的名位,你必須經(jīng)歷那條你不在其中的道路。——艾略特 非常奇妙,我最初的錯(cuò)誤是如下,在找到目標(biāo)節(jié)點(diǎn)后直接加入到res中,但是

    2024年02月07日
    瀏覽(12)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包