2022-08-10 CVTE C/C++软件开发苏州

需要保密,就不写选择题题目了,也不记得多少了。

前20题有的是多选有的是单选,没有明确提示是多选还是单选,
但是可以去点击选项,可以选多个选项应该就是多选,后来知道的,
但我全选的单选。


**第21题格雷码**
https://leetcode.cn/problems/gray-code/

![image|690x259](upload://jVBR7riVSgld7L7Xw0G1jtgvCyJ.png)

```
#include<iostream>
#include<vector>

using namespace std;

// 1 0
// 11 10 00 01
// 111 110 100 101 001 000 010 011
std::vector<int> grayCode(int n){
    if(n==1){
        return {1,0};
    }
    std::vector<int> v = grayCode(n-1);
    std::vector<int> ans;
    for(auto i:v){
        ans.push_back((1<<(n-1))|i);
    }
    for(int i=v.size()-1;i>=0;i--){
        ans.push_back(v[i]);
    }
    return ans;
}

int main(){
    int n;
    cin>>n;
    std::vector<int> gC = grayCode(n);
    for(auto& i : gC)
        cout<<i<<" ";
    return 0;
}
```

不同的是力扣要求第一个数是0,这里第一个数是n位都是1的二进制数
可以做个转化在力扣上过:
```
class Solution {
public:
    vector<int> f(int n){
        if(n==1){
            return {1,0};
        }
        std::vector<int> v = f(n-1);
        std::vector<int> ans;
        for(auto i:v){
            ans.push_back((1<<(n-1))|i);
        }
        for(int i=v.size()-1;i>=0;i--){
            ans.push_back(v[i]);
        }
        return ans;
    }
    std::vector<int> grayCode(int n){
        vector<int> a = f(n);
        vector<int> b;
        int i=0;
        while(a[i]!=0) i++;
        int j=i;
        cout<<i<<"\n";
        while(j<1<<n){
            b.push_back(a[j++]);
        }
        j=0;
        while(j<i)
            b.push_back(a[j++]);
        return b;
    }
};
```

**第22题二维图像差值**

```
#include<iostream>

using namespace std;

struct Image{
    uint32_t* data;
    uint32_t width;
    uint32_t height;
};

// 宽/高 的比值分别是 u、v
// 两数相除只有一个比值,怎么来的两个比值
// P(result) = P(startx,starty)*(1-u)*(1-v) + P(startx,endy)*(1-u)*v + \
//             P(endx,starty)*u*(1-v) + P(endx,endy)*u*v 
// result 代表哪个点?
// 如果 uv是已知的常数,则 result = f(startx,starty,endx,endy)
// 说明两个点的位置确定一个终点的位置,四个点的值确定一个终点的值

// 0, 100, 
// 100, 200

// 0,   50,   100, 
// 50,  100,  150, 
// 100, 150,  200

Image scale_image(const Image& src, uint32_t dst_width, uint32_t dst_height){
    uint32_t sw = src.width, sh = src.height, dw = dst_width, dh = dst_height;
    const uint32_t* sd = src.data;
    Image dst;
    dst.width = dw;
    dst.height = dh;
    dst.data = new uint32_t[dw*dh];
    uint32_t* dd = dst.data;
    
    int dis = (d[sw-1]-d[0])/(dw-1);
    dd[0]=sd[0];
    for(uint32_t i=1;i<dw;i++)
        dd[i]=dd[i-1]+dis;
    
    int t=1;
    for(uint32_t i=dw;i<dw*sw;i+=dw){
        dd[i] = dd[t++];
    }
    
    dis=(d[sw*sh-1]-d[sw-1])/(dh-1);
    for(uint32_t i=2*dw-1;i<dw*dh;i+=dw){
        dd[i] = d[i-dw] + dis;
    }
    
    for(uint32_t i = 1; i < dh; i++){
        uint32_t* begin = dd[i*dw];
        dis = (begin[dw-1]-begin[0])/(dw-1);
        for(uint32_t j = 1; j < dw; j++)
            begin[j] = begin[j-1] + dis;
    }
    
    return dst;
}
```
#cvte##CVTE#
全部评论
挂了
点赞 回复 分享
发布于 2022-08-16 18:05
理想汽车2023提前批校招目前已开启,有打算找工作的师弟师妹们,可以通过以下链接内推投递,全程进度跟随,无笔试。 https://www.nowcoder.com/discuss/1009803
点赞 回复 分享
发布于 2022-08-10 23:49

相关推荐

不愿透露姓名的神秘牛友
10-22 19:38
点赞 评论 收藏
分享
个人背景与学业-&nbsp;你本科考上xx学校是什么原因?-&nbsp;高考得差的是哪一科?考得好的是哪一科?-&nbsp;你觉得作为一个硬件工程师,最重要的品质是什么?项目经历与技术能力-&nbsp;你在实习期间有哪些收获?-&nbsp;你在这个项目1里主要负责哪一部分的内容?-&nbsp;这个项目是理论研究还是已经做出了实际的板子?-&nbsp;你的成本会比商业设备高出多少?-&nbsp;这件事有没有给你带来成就感?当时你们组一共有多少人来做这件事?-&nbsp;你觉得你在学校做项目和在公司实习,流程上有什么差异?-&nbsp;项目2是一个什么东西?-&nbsp;项目2是你的导师安排给你的任务吗?还是安排给你们组内成员的任务?-&nbsp;DCDC&nbsp;buck&nbsp;你可以大概跟我描述一下它的原理是怎么来实现的?它为什么会是一个高效率?-&nbsp;DCDC&nbsp;输入电流跟输出电流之间关系-&nbsp;你们电机控制的话用的是哪一类电机?-&nbsp;你对电机的了解,本体的了解,以及对它控制的了解,你可以大致的把整个的一个技术框架跟我聊一聊。-&nbsp;你在学习当中有没有遇到过某些困难?然后需要你花很大的精力去研究它,深入的理解它呢?专业技能-&nbsp;ARM&nbsp;嵌入式用的多吗?-&nbsp;GPIO&nbsp;的&nbsp;IO&nbsp;模式是什么样的一个&nbsp;IO&nbsp;模式?I2C&nbsp;呢?SPI&nbsp;呢?-&nbsp;你觉得同步信号跟异步信号之间最主要的差异是什么?-&nbsp;信号完整性你也了解吗&nbsp;?你有做过相应的测试吗?
点赞 评论 收藏
分享
评论
2
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务