如果阵列有[10,20,30,40]。我需要计算10 * 20 + 10 * 30 + 10 * 40 + 20 * 30 + 20 * 40 + 30 * 40。 假设乘法和加法都需要恒定的时间。 是否可以使用O(n)来评估它?
答案 0 :(得分:1)
不确定
def sumproductsofpairs(lst):
total = 0
psum = 0
for x in lst:
total += psum * x
psum += x
return total
答案 1 :(得分:0)
说明: 所有对的乘积之和=((数字之和)-(数字之平方和)^2))/2
export default class ConfigurationTab extends React.Component<{}, { }> {
static log(name:string){
console.log(name);
if(typeof window === "object")
{
console.log(name + " with window");
}
}
constructor(props:{}){
super(props);
ConfigurationTab.log("ConfigurationTab");
this.state = {};
}
componentDidMount(){
ConfigurationTab.log("componentDidMount");
}
componentDidUpdate(){
ConfigurationTab.log("componentDidUpdate");
}
componentWillUnmount(){
ConfigurationTab.log("componentWillUnmount");
}
static getDerivedStateFromProps(props:{},state:{}){
ConfigurationTab.log("getDerivedStateFromProps");
return null;
}
static Layout = LayoutWithoutTopBar;
render(){
return (
<div>Loaded</div>
)
}
}
ConfigurationTab.log("ConfigurationTab Load");
输出:
int arr[4]={10,20,30,40};
int sum=0,sum_sq=0;
for(int i=0;i<4;i++)
{
sum+=arr[i];
sum_sq+=(int)pow(arr[i],2);
}
cout<< ((int)pow(sum,2)-sum_sq)/2;