当前位置: 首页 > news >正文

免费浏览的网站泰安百度推广电话

免费浏览的网站,泰安百度推广电话,镇江模板网站,网站优化建设方案Powered by:NEFU AB-IN Link 文章目录 2376. 统计特殊整数题意思路代码 2376. 统计特殊整数 题意 如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个 正 整数 n ,请你返回区间 [1, n] 之间特殊整数的数目。 思路 详见灵神…

Powered by:NEFU AB-IN

Link

文章目录

  • 2376. 统计特殊整数
    • 题意
    • 思路
    • 代码

2376. 统计特殊整数

题意

如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。

给你一个 正 整数 n ,请你返回区间 [1, n] 之间特殊整数的数目。

思路

详见灵神视频
https://leetcode.cn/problems/count-special-integers/solutions/1746956/shu-wei-dp-mo-ban-by-endlesscheng-xtgx/

class Solution:def countSpecialNumbers(self, n: int) -> int:# 将整数 n 转换为字符串表示,方便逐位处理。s = str(n)@lru_cache(None)  # 使用缓存机制来避免重复计算,提高效率。def dfs(i, mask, is_limit, is_num):"""使用深度优先搜索(DFS)和动态规划计算特殊数字的数量。参数:i (int): 当前处理的位数(在字符串 s 中的索引)。mask (int): 位掩码,用于表示目前已经使用的数字。每个位代表一个数字,位被设置为1表示该数字已使用。集合和二进制的转换关系is_limit (bool): 表示前面填的数字是否都是 n 对应位上的,如果为 true,那么当前位至多为 int(s[i]),否则至多为 9is_num (bool): 表示当前是否已经形成了一个有效的数字(避免前导零)。返回值:int: 从当前状态开始的有效特殊数字的数量。"""# 基础情况:如果已经处理完所有位。if i == len(s):# 如果已经形成了一个有效的数字(is_num 为 True),返回 1;否则返回 0。return int(is_num)# 初始化当前状态下的结果。res = 0# 如果还没有形成有效数字,可以选择跳过当前位。if not is_num:# 递归处理下一位,不形成数字。res = dfs(i + 1, mask, False, False)# 确定当前位的上限。# 如果 is_limit 为 True,当前位的数字不能超过 s[i];# 否则,当前位可以是 0 到 9 之间的任意数字。up = int(s[i]) if is_limit else 9# 确定当前位的下限。# 如果已经形成了一个数字,当前位可以从 0 开始;# 否则,为了避免前导零,当前位只能从 1 开始。down = 0 if is_num else 1# 尝试当前位的所有可能数字。for d in range(down, up + 1):# 检查当前数字 d 是否已经使用过(即 mask 中相应的位是否已设置)。if not 1 << d & mask:# 递归处理下一位,更新位掩码和限制条件。res += dfs(i + 1, mask | 1 << d,  # 将当前数字 d 加入位掩码。is_limit and d == up,  # 如果 d 达到上限,更新 is_limit。True  # 现在已经形成了一个有效数字。)return res# 从第一位开始 DFS,位掩码为空,限制条件由 n 决定,尚未形成数字。return dfs(0, 0, True, False)

代码

'''
Author: NEFU AB-IN
Date: 2024-08-10 20:54:06
FilePath: \LeetCode\2376\2376.py
LastEditTime: 2024-08-12 23:45:19
'''
import random
# 3.8.19 import
from ast import Pass
from collections import Counter, defaultdict, deque
from datetime import datetime, timedelta
from functools import lru_cache, reduce
from heapq import heapify, heappop, heappush, nlargest, nsmallest
from itertools import combinations, compress, permutations, starmap, tee
from math import ceil, comb, fabs, floor, gcd, hypot, log, perm, sqrt
from string import ascii_lowercase, ascii_uppercase
from sys import exit, setrecursionlimit, stdin
from typing import Any, Callable, Dict, List, Optional, Tuple, TypeVar, Union# Constants
TYPE = TypeVar('TYPE')
N = int(2e5 + 10)
M = int(20)
INF = int(1e12)
OFFSET = int(100)
MOD = int(1e9 + 7)# Set recursion limit
setrecursionlimit(int(2e9))class Arr:array = staticmethod(lambda x=0, size=N: [x() if callable(x) else x for _ in range(size)])array2d = staticmethod(lambda x=0, rows=N, cols=M: [Arr.array(x, cols) for _ in range(rows)])graph = staticmethod(lambda size=N: [[] for _ in range(size)])class Math:max = staticmethod(lambda a, b: a if a > b else b)min = staticmethod(lambda a, b: a if a < b else b)class IO:input = staticmethod(lambda: stdin.readline().rstrip("\r\n"))read = staticmethod(lambda: map(int, IO.input().split()))read_list = staticmethod(lambda: list(IO.read()))class Std:pass# ————————————————————— Division line ——————————————————————class Solution:def countSpecialNumbers(self, n: int) -> int:s = str(n)@lru_cache(None)def dfs(i, mask, is_limit, is_num):if i == len(s):return int(is_num)res = 0if not is_num:res = dfs(i + 1, mask, False, False)up = int(s[i]) if is_limit else 9down = 0 if is_num else 1for d in range(down, up + 1):if not 1 << d & mask:res += dfs(i + 1, mask | 1 << d, is_limit and d == up, True)return resreturn dfs(0, 0, True, False)
http://www.yidumall.com/news/22635.html

相关文章:

  • 成都开发微信小程序优化快速排序
  • 长沙企业网站建设价格宁波正规seo推广公司
  • 技术支持 海安网站建设谷歌关键词
  • 网站死链是什么如何制作一个网页网站
  • 织梦网站转移服务器电子商务网站建设论文
  • delphi 做直播网站西安官网seo公司
  • 网站弹出信息怎么做的电视剧百度风云榜
  • app手机端电子商务网站功能如何做企业网站
  • 网站底部给网站地图做链接曲靖seo建站
  • 泉州做网站优化的公司网站技术外包公司
  • 龙岗 网站建设哪深圳优化公司义高粱seo
  • 企业文化网站建设做一个微信小程序需要多少钱
  • 用jsp做网站步骤网站建设公司业务
  • 大型电子商务网站建设淘宝指数查询工具
  • 西安网站建设招骋百度账号快速登录
  • 网站都到哪里做推广贴吧aso优化贴吧
  • 日本做a的动画视频网站网站seo优化心得
  • 基于jsp的网上购物系统如何进行网站性能优化
  • 网站后台域名企业网站建设的重要性
  • 浙江建设继续教育学院网站安卓嗅探app视频真实地址
  • 怎么查看一个网站有没有做推广网络营销首先要做什么
  • 做网站要公安备案吗网络营销中的四种方法
  • 网站开发用什么框架合适东莞seo黑帽培训
  • 你有网站 我做房东 只收佣金的网站网站排名软件利搜
  • 携程网站建设项目营销型网站建设推广
  • 做网站优化有前景吗app优化
  • 网站开发入门需要学什么网站推广软件免费版大全
  • 沈阳网站模板搜索引擎关键词优化技巧
  • wordpress 图片环绕南京广告宣传公司seo
  • zencart网站培训机构