[google interview] 输出所有的整数

原创 2016年08月29日 05:30:51
给一个数字集合,数字是0-9,没有重复,输出由其中的数字构成的所有整数,该整数小于某一个特定的整数

比如:数字集合[1,2,3], 特定整数130。 输出: 1,2,3, 11,12,13,21,22,23,31,32,33, 111,112,113,121,122,123. (下一个数字131 > 130), 输出的顺序无所谓。


思路: 每一位遍历所有的数字, 如果大于target就剪枝, 使用一个k来记录当前用了几位数字了, cur用来记录当前数字累计的大小

代码如下:

class Solution {
public:
    void DFS(vector<int> nums, int target, int cur, int k)
    {
        if(k >= nums.size() || cur > target) return;
        for(int i =0; i < nums.size(); i++)
        {
            if(k==0&&nums[i]==0) continue;
            if(cur*10+nums[i] <= target) ans.push_back(cur*10+nums[i]);
            DFS(nums, target, cur*10+nums[i], k+1);
        }
    }
    
    vector<int> solution(vector<int> nums, int target)
    {
        DFS(nums, target, 0, 0);
        return ans;
    }
private:
    vector<int> ans;
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Google 面试题 phone interview

摘自一亩三分地 http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=200350&extra=page%3D1%26fi...

How to get a job at Google, interview questions, hiring process

The Google hiring process is designed to hire the most talented, creative, and articulate people in ...

Google-HK-2012-interview-"pizza"(1)

2012 HK Google 今晚万圣节,和汉堡“孤男寡男”吃完泰餐,从Downtown回来,看到I-80高速都堵了。果然是落单的人最怕过节,尤其是秋雨过后,冷冷的空气平添几分对单身狗的敌意。 ...

Google-HK-2012-interview-"pizza"(2)

在UPENN的毕业典礼 Pomp and Circumstance Marches NO.1 今天我尝试给自己

Hacking a google interview

  • 2013年08月02日 09:15
  • 340KB
  • 下载

google_interview_guide

  • 2011年03月23日 12:03
  • 1.31MB
  • 下载

Google算法题:不包含连续1的非负整数

题目 分析 每一步的选择都依赖前一步的选择,是前面选择的组合,子问题重合,所以用动态规划 代码 package com.graph; import java.util.*; public ...
  • iyangdi
  • iyangdi
  • 2017年08月06日 09:52
  • 81

Hacking a Google Interview

  • 2011年12月05日 05:19
  • 339KB
  • 下载

google interview problem of iterator

  • 2014年09月18日 13:00
  • 164KB
  • 下载

输入4个整数,按从大到小的顺序输出这四个数

/* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者: * 完成日期:2012 年10...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[google interview] 输出所有的整数
举报原因:
原因补充:

(最多只允许输入30个字)