zoukankan      html  css  js  c++  java
  • leetcode1088

    参考了CSDN上一位博主提供的C++的代码

    class Solution {
    public:
      int confusingNumberII(int N) {
        n = N;
        ans = 0;
        search(0);
        return ans;
      }
    private:
      int n, ans;
      void search(long long num) {
        if (num > n) return;
        if (num) {
          if (rotate(num) != num) ++ ans;
        }
        if (num) search(num * 10);
        search(num * 10 + 1);
        search(num * 10 + 6);
        search(num * 10 + 8);
        search(num * 10 + 9);
      }
      long long rotate(long long x) {
        long long y = 0;
        for (; x; x /= 10) {
          int k = x % 10;
          switch (k) {
            case 6: k = 9; break;
            case 9: k = 6; break;
          }
          y = y * 10 + k;
        }
        return y;
      }
    };
    

    我尝试转换成python,但是却超时了:

     1 class Solution:
     2     def __init__(self):
     3         self.n = 0
     4         self.ans = 0
     5 
     6     def confusingNumberII(self, N: int) -> int:
     7         self.n = N
     8         self.searchNumber(0)
     9         return self.ans
    10 
    11     def searchNumber(self,num):
    12         if num > self.n:
    13             return
    14         #if self.confusingNumber(num):
    15         if num != 0 and self.rotate(num) != num:
    16             self.ans += 1
    17             #print(str(self.ans) +":"+ str(num))
    18         if num != 0:
    19             self.searchNumber(num * 10)
    20         self.searchNumber(num * 10 + 1)
    21         self.searchNumber(num * 10 + 6)
    22         self.searchNumber(num * 10 + 8)
    23         self.searchNumber(num * 10 + 9)
    24 
    25     def rotate(self,x):
    26         y = 0
    27         while x != 0:
    28             k = x % 10
    29             if k == 6:
    30                 k = 9
    31             elif k == 9:
    32                 k = 6
    33             y = y * 10 + k
    34             x = x // 10
    35         return y

    超时的测试用例:1000000000,答案:1950627,python在我本机执行时间:11.3s。

    目前没想到解决办法。

  • 相关阅读:
    AVCODEC_MAX_AUDIO_FRAME_SIZE 未定义标识符
    ffmpeg -使用总结
    ubuntu 编译安装ffmpeg
    转-查看Linux CPU个数,核心,线程数
    fpga是什么
    div自适应水平垂直居中的方法
    css百分比问题——`top`、`left`、'translate'的百分比参照谁?
    经典面试题:二分查找/折半查找
    JavaScript预解析
    React--组件
  • 原文地址:https://www.cnblogs.com/asenyang/p/11032348.html
Copyright © 2011-2022 走看看