您当前的位置: 首页 >  华为

TechGuide

暂无认证

  • 6浏览

    0关注

    176博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

华为秋招机试三道编程题(2021-08-11)(已完结)

TechGuide 发布时间:2021-08-12 09:55:20 ,浏览量:6

恭喜发现宝藏!微信搜索公众号【TechGuide】关注更多新鲜好文和互联网大厂的笔经面经。 作者@TechGuide【全网同名】 点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝

文章目录
  • 第一道:叠积木(100%)
    • 题目:
    • 参考代码:
  • 第二道: 加密字符串(100%)
    • 题目
      • 代码
  • 第三道:往仓库放货物的最大数量(100%)
    • 题目
    • 代码

第一道:叠积木(100%) 题目:

给出一个列表如[[6,7,],[5,4],[3,2]],表示木块的长和宽,当木块的长和宽不大于另个木块的长和宽时,就可以放在上面,此外数组还可以左右翻转。(与leetcode354:俄罗斯套娃相似,不过添加了翻转,增加了难度)。当长宽都大于等于上一个积木时才可以搭到上一个积木上,此外数组还可以左右翻转。求最多能搭多少层。

输入:

[[5,4], [6,3], [6,7], [6,6], [4,6]]

输出:

4

参考代码:
#include
using namespace std;

int main()
{
    string s;
    getline(cin, s);
    vector nums;
    while(s.size()>2)
    {
        int pos = s.find(']');
        string temp = s.substr(2, pos-2);
        s = s.substr(pos+2);
        pos = temp.find(',');
        int a = stoi(temp.substr(0, pos));
        temp = temp.substr(pos+1);
        int b = stoi(temp);
        if(ab[1]; 
        else return a[0] >b[0];
    };
    sort(nums.begin(), nums.end(), cmp);
	//动态规划求最长的递减子序列 
	//关注TechGuide!大厂笔经面经闪电速递!
    int count = 1;
    vector dp(nums.size(), 1);//切记dp[i]表示[0,i]范围内包含nums[i]的最长递减子序列。注意该最长子序列并不一定是[0,i]范围内的最长递减子序列 
    for(int i=1; i=0; j--)
    	{
    		if(nums[i][1]             
关注
打赏
1665329535
查看更多评论
0.0468s