JD后端笔试c++

1、第一题,输入n和k,第二行输入n个数字,要求差不大于k的两个数字相乘,求能加起来的最大值。

第一题不是int为什么只有40%

#include<bits/stdc++.h>

using namespace std;

int main()
{
	int n,k;
	cin >> n >> k;
	vector<int> nums(n);
	for(int i=0; i<n; i++)
	{
		cin >> nums[i];
	}
	int i = n-2;
	int score = 0;
	sort(nums.begin(),nums.end());
	while(i>=0)
	{
		if(abs(nums[i]-nums[i+1])<=k)
		{
			score += nums[i]*nums[i+1];
			if(i-2>=0)
			{
				i=i-2;
			}else{
				break;
			}
		}else{
			i--;
		}
	}
	cout << score << endl;
	return 0;
}
/*
输入
6 2
1 1 1 1 4 5
输出 
22 
*/ 

2、第二题,动态规划 100%

3、一个数组,求里面所有子数组的和 20% 时间复杂度没时间优化了

全部评论
得开longlongvector都得开longlong
点赞
送花
回复 分享
发布于 2023-09-09 21:45 陕西
class Main103 { private static final int mod = 1000000007; public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int m = in.nextInt(); long[] a = new long[m + 1]; for (int i = 1; i < m + 1; i++) { a[i] = in.nextInt(); } long[] dp = new long[m + 1]; dp[1] = a[1]; for (int i = 2; i < m + 1; i++) { dp[i] = dp[i - 1] + (((((long) (i) * (long) (i + 1))) / 2 * a[i]) % mod); dp[i] %= mod; } long result = 0; for (int i = 1; i < m + 1; i++) { result += dp[i]; result %= mod; } System.out.println(result); } } }
点赞
送花
回复 分享
发布于 2023-09-09 21:46 湖北
国泰君安
校招火热招聘中
官网直投
鼎桥通信2024全球校园招聘正式启动/喝彩/喝彩/喝彩 鼎桥通信技术有限公司于2005年在北京成立,在北京、上海和成都三地设立研发中心,员工超过2000人,49%的员工拥有硕士或博士学历,研发人员占比70%,研发投入累计超过100亿。500亿+专网建设,500万+行业客户。鼎桥凭借着在无线通信行业的多年技术积累,将稳定高效的联接作为纽带,助力人们收集数据、提取有效信息、洞见事物的变化与生息,并依托成熟的市场和销售经验、高质量创新研发能力、可靠完善的生产交付和售后服务体系,致力成为行业联接解决方案的全球领导者。 【校招岗位】 软件类、算法类、硬件类、测试类、芯片类、销售类、市场类、财会类等8大类,13个岗位,全球工作机会! 【工作地点】成都,北京,上海,海外等全球布局,全球工作机会。 【薪资福利】 提供有市场竞争力的薪酬,更有SP offer、SSP offer等你来拿/勾引/勾引/勾引 六险一金、工会俱乐部、15天超长年假,10天病假,团建,夜宵,打车,节假日福利等等享不停…… 【内推特权】 学长学姐布道,网申不迷路。简历优先筛选、优先安排面试,快人一步拿offer!💪 -投递之前填写我的推荐码:IVVGS8 -投递之前填写我的推荐码:IVVGS8 -投递之前填写我的推荐码:IVVGS8 -投递网址:https://td-tech.zhiye.com/campus/jobs 欢迎加入鼎桥通信,让我们一起改变世界!
点赞
送花
回复 分享
发布于 2023-09-12 15:53 四川

相关推荐

1 4 评论
分享
牛客网
牛客企业服务