小编Ram*_*uri的帖子

“如何用我的编码打动面试官?在我为所写问题打动面试官的代码中,我可以采用哪些做法?

假设有一个int向量。现在我们要进行合并,我们选择2个相邻元素v [I]和v [I + 1](对于每个有效I),然后做v [I] = v [I + 1] + v [I]。并擦除v [I + 1]。继续执行此操作,直到在向量中只剩下一个元素为止(注意I = 0和I = v.size()-1也被视为相邻元素)。因此,我们需要尝试所有可能的组合(例如,如果需要进一步说明,我们首先采用哪对并合并的问题,请在评论中告知我)

每次合并时,我们都会进行cost + = v [I] + v [I + 1]。目标是使成本最小化。例如,向量为1 23。合并[1 2 3]-> [3,3] &cost = 3-> [6]&cost = 9另一种方法[1 2 3]-> [1,5]&cost = 5-> [6]&cost = 11。那么他们的任何算法都可以生成具有给定约束的所有排列吗?

#include<bits/stdc++.h>
using namespace std;
int mn =INT_MAX;
void r(vector<int > v, int sum)
{
    if(v.size()==1){if( mn >sum) mn=sum; return ;}

    for(int i=0;i<v.size();i++)
    {
        sum+=v[i]+v[(i+1)%v.size()];
        v[i]=v[i]+v[(i+1)%v.size()];
        v.erase(v.begin()+(i+1)%v.size());
        r(v,sum);
    }
}
int main() …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm coding-style vector

4
推荐指数
1
解决办法
97
查看次数

在 C++ 中更新常量变量值

我知道我们在 C 中以这种方式更改 const 变量值(通过将其更改为非常量)。

#include<stdio.h> 
#include<stdlib.h> 
int main() 
{ 
    const int var = 10; 

    int *ptr = &var; 
    *ptr = 5; 

    printf("var = %d\n", var); 

    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

C++ 中的类似事情(使用指针)给了我一个编译错误

如何更新 C++ 中的 const 变量值?

c++ constants

0
推荐指数
1
解决办法
161
查看次数

标签 统计

c++ ×2

algorithm ×1

coding-style ×1

constants ×1

vector ×1