#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
/** 请完成下面这个函数,实现题目要求的功能 **/
/** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^ **/
int time_cal(int num_list1_input[], int num_list2_input[], int num_list3_input[], char char_list_input[], int length)
{
for (int i = 0; i < length; ++i)
{
int j = 0;
for (j = 0; char_list_input[j] != ' '; ++j)
{
num_list1_input[i] = char_list_input[j] - '0';
}
for (int k = j + 1; char_list_input[k] != '\0'; ++k)
{
num_list3_input[i] = char_list_input[k] - '0';
}
num_list2_input[i] = num_list3_input[i] - num_list1_input[i];
}
}
void swap(int num_list1_input[], int num_list2_input[], int num_list3_input[], int length, int num1_input, int num2_input)
{
int num1_cp = 0;
int num2_cp = 0;
int num3_cp = 0;
num1_cp = num_list1_input[num1_input];
num2_cp = num_list2_input[num1_input];
num3_cp = num_list3_input[num1_input];
num_list1_input[num1_input] = num_list1_input[num2_input];
num_list2_input[num1_input] = num_list2_input[num2_input];
num_list3_input[num1_input] = num_list3_input[num2_input];
num_list1_input[num2_input] = num1_cp;
num_list2_input[num2_input] = num2_cp;
num_list3_input[num2_input] = num3_cp;
}
void sort(int num_list1_input[], int num_list2_input[], int num_list3_input[], int length)
{
int k = 0;
for (int i = 0; i < length - 1; ++i)
{
k = i;
for (int j = i + 1; j < length; ++j)
{
if (num_list1_input[k] > num_list1_input[j])
{
k = j;
}
}
swap(num_list1_input, num_list2_input, num_list3_input, length, i, k);
}
}
int findMeetingTime(int meetingTimeArray_size, char** meetingTimeArray) {
int num_list_start[meetingTimeArray_size] = {0};
int num_list_end[meetingTimeArray_size] = {0};
int num_list_mid[meetingTimeArray_size] = {0};
int time_count = 0;
for (int i = 0; i < meetingTimeArray_size; ++i)
{
time_count = time_count + num_list_start[i] + num_list_mid[i];
if (time_count >= num_list_end[i])
{
return -1;
}
}
return 1;
}
int main() {
int res;
int _meetingTimeArray_size = 0;
int _meetingTimeArray_i;
scanf("%d\n", &_meetingTimeArray_size);
char* _meetingTimeArray[_meetingTimeArray_size];
for(_meetingTimeArray_i = 0; _meetingTimeArray_i < _meetingTimeArray_size; _meetingTimeArray_i++) {
char* _meetingTimeArray_item;
_meetingTimeArray_item = (char *)malloc(512000 * sizeof(char));
scanf("\n%[^\n]", &_meetingTimeArray_item);
_meetingTimeArray[_meetingTimeArray_i] = _meetingTimeArray_item;
}
int num_list_start[_meetingTimeArray_size] = {0};
int num_list_mid[_meetingTimeArray_size] = {0};
int num_list_end[_meetingTimeArray_size] = {0};
time_cal(num_list_start, num_list_mid, num_list_end, _meetingTimeArray, _meetingTimeArray_size);
sort(num_list_start, num_list_mid, num_list_end, _meetingTimeArray_size);
res = findMeetingTime(_meetingTimeArray_size, _meetingTimeArray);
printf("%d\n", res);
return 0;
}
阿里笔试题二
最新推荐文章于 2022-08-31 11:00:37 发布
859

被折叠的 条评论
为什么被折叠?



