首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客440904392号
获赞
19
粉丝
0
关注
0
看过 TA
21
北京大学
2029
算法工程师
IP属地:河南
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客440904392号吗?
发布(263)
评论
刷题
收藏
牛客440904392号
关注TA,不错过内容更新
关注
01-13 18:47
北京大学 算法工程师
题解 | 股票交易
input() nums = list(map(int, input().split())) a, ans = nums[0], -nums[0] for x in nums: if x - a > ans: ans = x - a elif x < a: a = x print(ans)
0
点赞
评论
收藏
分享
01-13 18:40
北京大学 算法工程师
题解 | 排列删除
input() nums = list(map(int, input().split())) for _ in range(int(input())): x, y = map(int, input().split()) if x < y: print("Yes") else: for i in range(y, x + 1): if nums[i - 1] > nums[x - 1]: print("Yes") break else: print("No")
0
点赞
评论
收藏
分享
01-13 17:02
北京大学 算法工程师
题解 | 最小字符串
s = input() ans = [] i = len(s) - 2 ans = [s[-1]] while i >= 0: if s[i] < s[i + 1]: ans.append(s[i] * 2) i -= 1 while i >= 0 and s[i] == s[i + 1]: ans.append(s[i] * 2) i -= 1 else: ans.append(s[i]) i -= 1 print(''.join(reversed(ans)))
0
点赞
评论
收藏
分享
01-13 16:26
北京大学 算法工程师
题解 | 整数分解
import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); boolean[] isPrime = new boolean[n + 1]; List<Integer> primes = new Link...
0
点赞
评论
收藏
分享
01-13 15:57
北京大学 算法工程师
题解 | 数组排序
#include<iostream> #include<algorithm> using namespace std; int main() { int n; cin >> n; double nums[n]; for (int i = 0; i < n; i++) cin >> nums[i]; sort(nums, nums + n); for (double x : nums) cout << x << endl; return 0; }
0
点赞
评论
收藏
分享
01-13 15:41
北京大学 算法工程师
题解 | 数字猜想
x = int(input()) ans = 0 while x != 1: if x % 2 == 1: x = x * 3 + 1 else: x //= 2 ans += 1 print(ans)
0
点赞
评论
收藏
分享
01-13 15:32
北京大学 算法工程师
题解 | 计数问题
import sys import math from math import gcd # 计算两个数的最小公倍数 def lcm(a, b): return a * b // gcd(a, b) # 计算一个列表所有数的最小公倍数 def multi_lcm(nums): res = 1 for num in nums: res = lcm(res, num) return res def solve(): data = sys.stdin.read().split() idx = 0 T = int(data[idx]) idx += 1 for _ in range(T): n, L, ...
0
点赞
评论
收藏
分享
01-13 13:51
北京大学 算法工程师
题解 | 基建高手二分查找
n, k = map(int, input().split()) nums = list(map(int, input().split())) left, right = 0, 10000000000 while left <= right: mid = (left + right) // 2 if sum(mid // x for x in nums) >= k: right = mid - 1 else: left = mid + 1 print(left)
0
点赞
评论
收藏
分享
01-13 00:23
北京大学 算法工程师
题解 | 特别的除法
import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(), b = sc.nextInt(), c = sc.nextInt(); int integer = a / b, remainder = a % b; List<Integer> decima...
0
点赞
评论
收藏
分享
01-12 21:59
北京大学 算法工程师
题解 | 求三角形的面积向量叉积
for _ in range(int(input())): x1, y1, x2, y2, x3, y3 = map(int, input().split()) print(f"{abs((x3-x1)*(y3-y2)-(y3-y1)*(x3-x2))/2:.2f}")
0
点赞
评论
收藏
分享
01-12 21:35
北京大学 算法工程师
题解 | 句子正序
print(" ".join(reversed(input().split())))
0
点赞
评论
收藏
分享
01-12 21:34
北京大学 算法工程师
题解 | 哈夫曼树
#include<iostream> #include<vector> #include<queue> using namespace std; int main() { int n; while (cin >> n) { int ans = 0; priority_queue<int, vector<int>, greater<int>> pq; while (n--) { int x; cin >> x; pq.push(x); } while (pq.size() > 1) { int ...
0
点赞
评论
收藏
分享
01-12 21:09
北京大学 算法工程师
题解 | 体重排序
persons = [] for _ in range(int(input())): name, weight = input().split() persons.append((float(weight), name)) persons.sort() print(*(person[1] for person in persons))
0
点赞
评论
收藏
分享
01-12 21:03
北京大学 算法工程师
题解 | 删除区间
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); List<int[]> list = new ArrayList<>(); while (n-- > 0) { int a = sc.nextInt(), b = sc.nex...
0
点赞
评论
收藏
分享
01-12 20:39
北京大学 算法工程师
题解 | 逆序对的数量
#include<iostream> using namespace std; long long ans = 0; void merge(int nums[], int left, int mid, int right) { int i = left, j = mid + 1, k = 0; int temp[right - left + 1]; while (i <= mid && j <= right) { if (nums[i] <= nums[j]) temp[k++] = nums[i++]; else { ans += mid - i...
0
点赞
评论
收藏
分享
1
2
3
4
5
6
18
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务