我正在解决C ++编码问题,遇到了一个问题“在以下两个条件下查找三元组的数量-求和等于给定的阈值(阈值是整数),三元组应为{{ 1}},其中a[i]<a[j]<a[k]
是数组,a
,'j','k'是数组的索引(出于说明目的)。
我做了什么-
i
我的输出应提供此类三胞胎的数量,但我的输出为0。例如,我的输入是7(阈值),然后是1,2,4,6(向量元素),我的输出应该是1,因为有一个这样的三元组(1,2,4)加起来等于或小于给定的阈值,但表示为0
在许多其他StackOverflow成员的帮助下,最终的工作代码如下
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int threeSum(vector<int>& nums, int threshold); //function declaration
int main() {
int result, threshold;
cin>>threshold; //entered by user
vector<int> nums; //array which contains values
for(int m = 0 ; m< nums.size() ; m++)
nums.push_back(m);
result = threeSum(nums, threshold);
cout<<result;
return 0;
}
int threeSum(vector<int>& nums, int threshold) {
// vector<vector<int>> result;
int count = 0, threshold;
if(nums.empty() || nums.size()<=2)
return 0;
sort(nums.begin(), nums.end());
for (int i = 0; i < nums.size() - 2; i++) {
int a = nums[i];
if(a > threshold) break;
if (i > 0 && a == nums[i - 1]) continue;
for (long j = i + 1, k = nums.size() - 1; j < k;) {
int b = nums[j];
int c = nums[k];
int value = a + b + c;
if (value <= threshold) {
count++;
while (j<k && b == nums[++j]);
while (j < k &&c == nums[--k]);
} else if (value > 0) {
k--;
} else {
j++;
}
}
}
return count;
}
答案 0 :(得分:2)
每个num元素都等于零。
一个= nums [i]等于零。
因此,将for循环留在
if(a > 0) break;
也许应该是
if(a > threshold) break;
答案 1 :(得分:1)
最初的问题是(您的编译器应该警告您-请研究如何进行设置,或者,如果您忽略了它,请以后再不要忽略它)import React from 'react';
import 'materialize-css';
import 'materialize-css/dist/css/materialize.min.css';
import Pic1 from '../img/Pic1.jpg'
import Pic2 from '../img/Pic2.jpg';
import 'materialize-css/js/parallax';
const About = () => {
return (
<div className="paralax">
<div className="parallax-container">
<div className="parallax"><img src={Pic1} alt="Building"/></div>
</div>
<div className="class section white">
<div className="row container">
<h2 className="header">Parallax</h2>
<p className="grey-text text-darken-3 ligthen-3">
Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.
</p>
</div>
</div>
<div className="parallax-container">
<div className="parallax"><img src={Pic2} alt="Building"/></div>
</div>
</div>
)
}
export default About;
中的threshold
}完全没有初始化。尝试以下方法:
threeSum()
和
result = threeSum(nums,threshold);
我让你解决其他细节!