参加最多招聘会问题|贪心算法

题目:http://ac.jobdu.com/problem.php?pid=1463

又到毕业季,很多大公司来学校招聘,招聘会分散在不同时间段,小明想知道自己最多能完整的参加多少个招聘会(参加一个招聘会的时候不能中断或离开)。


php解法:

<?php
$start = array(10,9,8);
$end = array(12,10,15);

greedy_search($start,$end);

function greedy_search($start,$end) {
	$first = array();
	
	for($i = 0; $i < count($end); $i++) {
		$temp = get_first($start,$end,$first);
		$first[] = $temp;
	}
	var_dump($first);	
}

function get_first($start_time,$end_time,$ignore) {
	$flag = 24;
	$first_key = NULL;
	$len = count($ignore);
	if($len > 0)
		$last = $ignore[$len - 1];
	
	for($key = 0; $key < count($end_time); $key++) {
		if(0 == $len) {
			if($end_time[$key] < $flag) {
				$flag = $end_time[$key];
				$first_key = $key;
			}
		}
		else if(! in_array($key,$ignore)) {
			if($end_time[$key] <= $flag && $start_time[$key] >= $end_time[$last]) {
				$flag = $end_time[$key];
				$first_key = $key;
			}
		}
	}
	return $first_key;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值