京东笔试第一题90,第二题AC代码分享

第一题暴力,太丑了而且还不想改。。就不放了
第二题之前做过类似的,有印象。上代码
#include <iostream>
#include <vector>

using namespace std;

bool isEqualed(vector<int> &nums, int len) {
	int sum = 0;
	for (int i = 0; i < len; i++)
		sum += nums[i];
	if (sum % 2 == 1)
		return false;

	sum /= 2;
	bool dp[100];
	for (int i = 0; i <= sum; i++)
		dp[i] = false;
	dp[0] = true;
	for (int i = 0; i < len; i++) {
		for (int j = sum; j >= nums[i]; j--) {
			dp[j] = dp[j] | dp[j - nums[i]];
		}
	}
	return dp[sum];
}

int main() {
	int l, r, count = 0;
	cin >> l >> r;
	vector<int> a;

	for (int i = l; i <= r; i++) {
		int n = i;
		a.clear();
		while (n != 0) {
			a.push_back(n % 10);
			n = n / 10;
		}
		if (isEqualed(a, a.size())) {
			count++;
		}
	}
	cout << count << endl;

	return 0;
}

全部评论
for (int i = 0; i < len; i++) {         for (int j = sum; j >= nums[i]; j--) {             dp[j] = dp[j] | dp[j - nums[i]];         }     }     return dp[sum]; } 这个判断神奇数的代码什么意思?  
点赞 回复 分享
发布于 2017-09-08 22:58
#include <iostream> #include <algorithm> using namespace std; // 1 2 2 3 3 3 4 4 4 4 5 5 5 5, 第k个数会出现k次,给出第n个数,问这个数是多少 /* * * 第1项有1个数,第k项有k个数,第n项有n个数,为等差序列 * * sn = (1 + n) n/ 2 ; sn表示这个序列总共有sn个数 * * (1 + k)k/ 2 = s ==> k^2 + 2k - 2s = 0 ==>k = [-1 + sqart(4 * 2s)] / 2 当k不是整数时,要向上取整 * * * */ int main() { int64_t s = 0; cin>>s; double k = (-1 + sqrt(4 * 2 * s))/2.0; int64_t k_ = k; int64_t ans = k_ == k ? k : k_+1; cout<<ans<<endl; return 0; }
点赞 回复 分享
发布于 2017-09-08 22:13
真的不知道这样为啥会过啊。我这样在本地测试,数字大特别慢,没放上去试,居然能ac啊。唉
点赞 回复 分享
发布于 2017-09-09 00:11
第二题思路是什么啊?
点赞 回复 分享
发布于 2017-09-08 22:38
//第一题找规律就完事了,模拟了过程反而会复杂度太高 void func() { unsigned long long n; cin >> n; unsigned long long tmp = 2*n; unsigned long long res = sqrt(tmp); if (n > res *(res + 1) / 2) res++; cout << res << endl; }
点赞 回复 分享
发布于 2017-09-08 22:37
#include<iostream> using namespace std; int main() { long long n; cin >> n; long long i = 1; long long sum = 0; while (sum < n) { sum += i; i++; } cout << i - 1 << endl; } return 0;
点赞 回复 分享
发布于 2017-09-08 21:25
第二题代码简洁,不错
点赞 回复 分享
发布于 2017-09-08 21:21

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务