"如何用我的编码给面试官留下深刻印象?我可以在我为题材写的代码中采用哪些做法来打动面试官?
"How to impress interviewers with my coding? What practices can I adopt in the code I've written for the question stated to impress interviewers?
假设有一个 int 向量。现在我们要合并这样,我们选择2个相邻的元素v[I]和v[I+1](对于每个有效的I),并做v[I] = v[I+1] + v[I]。并擦除 v[I+1]。继续这样做,直到向量中只剩下一个元素。(注意 I=0 和 I=v.size()-1 也被认为是相邻的)。所以我们需要尝试所有这种可能的组合(即我们先采取哪对并合并事项,如果需要进一步澄清,请在评论中告诉我)
每次合并时,我们都会进行成本+= v[I] + v[I+1]。目标是最大限度地降低成本。举个例子,假设向量是 1 2 3。合并 [1 2 3]-> [3,3] 和成本=3 -> [6] 和成本=9 另一种方式 [1 2 3]-> [1,5] 和成本=5 -> [6] 和成本=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()
{
vector<int> v;//suppose we gave some input to our vector
r(v,0);
cout<<mn;
return 0;
}
#if you have a better solution, do state it, thankyou!
你的目标是给面试官留下深刻印象。
他们正在寻找可以在团队中工作并且可以制作可重用代码的人,当需要切换到不同的主题进行工作时,可以将其移交给同事。
为此,请学会
- 养成解释代码的习惯,即编写有用的注释
- 根据"如果代码和注释不匹配,则两者都可能出错"编写注释
- 根据"我的评论帮助我从没有电脑的岛上度假三个月回来后理解自己的代码"写评论
- 停止使用全局变量,至少不使用返回值
- 对变量和函数使用自我解释标识符
- 浏览一下 StackOverflow 问题,了解要废除的可疑习惯(例如,为什么我不应该 #include ?
- 了解何时进行优化,在不需要时进行优化通常不值得
- 学习针对特定目的进行优化
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 有没有办法用单行逻辑代码打印金字塔星形图案?面试官向我的朋友问了这个问题
- "如何用我的编码给面试官留下深刻印象?我可以在我为题材写的代码中采用哪些做法来打动面试官?
- 理解删除字符串中重复字符的代码(来自破解编码面试)