万人毒 发布于五月 31, 2022 分享 发布于五月 31, 2022 (已修改) 于 2022/5/2 于 PM6点47分, big_yellow_doge 说道: 思路差不多是可以的呢,不过还有复杂度更低的方法哦,1e6的数据大概率是要TLE的呢 然后判断的应该是a[i]+1 != a[i+1]的时候输出a[i] 还有就是如果doge的学号是最大的值,还会出现数组越界的情况哦 话说 这个可以解决的 比如进行顺序排序 后先判断数组第一位和最后一位 是不是分别等于奇数 ,偶数 如果是的话 情侣规则不匹配了 直接输出 它 然后在继续 for (int i = 0; i < (sizeof(a) / sizeof(int)); i=i+2) { if (a[i] + 1 != a[i + 1]) { std::cout << a[i]; i = (sizeof(a) / sizeof(int)); } } #include <iostream> int main() { int a[] = { 88,89,90,98,99}; if (a[0] % 2 == 1) { std::cout << a[0]; }else if (a[(sizeof(a) / sizeof(int) - 1)] % 2 == 2){ std::cout << a[(sizeof(a) / sizeof(int) - 1)]; }else{ for (int i = 0; i < (sizeof(a) / sizeof(int)); i=i+2) { if (a[i] + 1 != a[i + 1]) { std::cout << a[i]; i = (sizeof(a) / sizeof(int)); } } } } 虽然有点小问题 五月 31, 2022,由万人毒修改 链接到点评
万人毒 发布于五月 31, 2022 分享 发布于五月 31, 2022 12 分钟前, AlGoRiThM 说道: 隐藏内容 目前已知,男同学和女同学学号相邻~,因此,只要从list之中删除不相邻的,即可找到单身狗的学号~ 隐藏内容 Sample code: def main(N, arrays): while True: select = arrays[0] if select+1 in arrays: arrays.remove(arrays.index(select+1)) arrays.remove(0) elif select-1 in arrays: arrays.remove(arrays.index(select-1)) arrays.remove(0) else: return select 没有考虑不存在单身狗的情况~ 请考虑一下59 60 61 62 这种情况 像这组就两个单身狗了 60 61 才是情侣 情侣条件 (女 偶数 +1的男才是情侣 情侣女必须比情侣男-1) 万人毒看指路牌的时候拾起一片古怪的叶子,被河童用1节操买來高兴地吃掉了 链接到点评
推荐贴