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

leetcode -- Count Numbers with Unique Digits

题目描述:


Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.


Example:
Given n = 2, return 91. (The answer should be the total numbers in the range of 0 ≤ x < 100, excluding [11,22,33,44,55,66,77,88,99])


给定数位n,返回n位数字集合中,数位各自不重复的数字。


分析:
使用a[n]数组保存n位数字时多少数字不重复。
a[1] = 10
a[2] = 9*9
a[3] = 9*9*8
a[4] = 9*9*8*7 
....
a[k] = 9*...*[11-k]


此题为全排列问题,即对于给定数位X,a[x]为9*B[N].
其中B[N] = [M*(M-1)*(M-2)....],而M的值总为9。对于X,数列B[N]的个数为X-1


实现:


public int CountNumbersWithUniqueDigits(int n) 
{


	
	if(n == 0){
		return 1;
	}
	if(n == 1){
		return 10;
	}
	if(n == 2){
		return 91;
	}
	
	var result = new int[n];
	result[0] = 10;
	result[1] = 81;// 9*9
	
	
	for (var i = 2;i < n; i++){
		var count = i;
		var x = 9;
		for (var j = 9; count > 0; count--){
			x *=j ;
			j--;
		}
		result[i] = x;
	}
	
	return result.Sum();
}


相关文章:

  • javascript小数四舍五入
  • 业务场景和业务用例场景的区别(作者:Arthur网友)
  • Android -- 打开时隐藏软键盘
  • 邀请大象一书的读者和广大网友写关于分析设计、建模方面的自愿者文章
  • Android -- 读取NFC卡号
  • Windows 7安装以及VS2008和Office2007冲突的问题
  • C# Windows form application 播放小视频
  • 系列文章—内容模型系统开发总结一
  • LeetCode -- Coin chane
  • LeetCode -- Ransom Note
  • LeetCode -- Divide Two Integers
  • 背板带宽
  • IIS中 传递json配置数据最大长度
  • 一道C语言笔试题
  • LeetCode -- Convert a Number to Hexadecimal
  • ES2017异步函数现已正式可用
  • Java编程基础24——递归练习
  • Java新版本的开发已正式进入轨道,版本号18.3
  • MobX
  • MySQL的数据类型
  • V4L2视频输入框架概述
  • 从tcpdump抓包看TCP/IP协议
  • 机器学习 vs. 深度学习
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 免费小说阅读小程序
  • 漂亮刷新控件-iOS
  • 前端临床手札——文件上传
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 项目实战-Api的解决方案
  • 用element的upload组件实现多图片上传和压缩
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​iOS安全加固方法及实现
  • ​Spring Boot 分片上传文件
  • ​ubuntu下安装kvm虚拟机
  • #git 撤消对文件的更改
  • (ZT)一个美国文科博士的YardLife
  • (二)WCF的Binding模型
  • (十六)串口UART
  • (四)Android布局类型(线性布局LinearLayout)
  • (四)汇编语言——简单程序
  • (原)本想说脏话,奈何已放下
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)socket Aio demo
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .net 中viewstate的原理和使用
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET运行机制
  • /boot 内存空间不够
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @Service注解让spring找到你的Service bean