我刚开始学习git.我git diff --staged
和命令之间有混淆git diff --cached
.
对于这个问题:给定偶数(大于2),返回两个素数,其总和将等于给定数.
以下算法分别具有时间复杂度O(A 2.5)和O(Alog(log(A)).对于A(整数)的值仍然大到73939138,第二个算法真的很慢.我尝试了很多输入而第一个更快.你能解释一下原因吗?
int ul=A/2;
vector <int> answer;
for (int i=1; i<=ul; i++)
{
if (check(i)==1 && check(A-i)==1 ) //check(i) checks primality of i in O(i^1.5)
{
int myint[2] ={ i,A-i };
answer.assign( myint, myint+2);
return answer;
}
}
Run Code Online (Sandbox Code Playgroud)
vector<bool> primes(A+1,true);
int i,j;
//Sieve of Eratosthenes O(Alog(log(A)))
for(i=2;i*i<A+1;i++)
{
if(primes[i])
{
for(j=2;i*j<A+1;j++)
primes[i*j]=0;
}
}
vector<int> arr,answer;
//arr is vector containing all primes from 2 to A; O(A)
for(i=2;i<A+1;i++)
{
if(primes[i])
arr.push_back(i);
}
i=0;j=arr.size()-1;
//Algorithm to find 2 numbers …
Run Code Online (Sandbox Code Playgroud) 在git 参考中,它指出
一个简单的git diff将以统一的diff格式(补丁)显示自上次提交以来您尚未在下一个提交快照中暂存的项目中更改的代码或内容。
我所做的是,提交了一个包含文本的文件A
。然后,我将该文件中的文本从更改A
为B
并暂存(未提交)。最后,我将文件的内容更改为C
。现在,当我运行时,git diff
它向我显示B
和之间的区别C
。但我想看到的区别A
和C
。我该怎么做?
对于以下代码:
list<int> P;
int i,n,x;
cin>>n>>x;
for(i=0;i<n;i++)
P.push_back(i+1);
list<int>::iterator t2,t1=P.begin();
advance(t1,x-1);
t2=t1;
t1++;
P.erase(t1);
t2++;
cout<<*t2<<" ";
cout<<*(P.end())<<endl;
Run Code Online (Sandbox Code Playgroud)
当我给出的输入是:5 3,
输出量为5 4.
我实际上是从列表中删除元素4.但它将走到列表的末尾.我该如何避免这种情况?我想从列表中完全删除4,以便列表中的最后一个元素是5.