357. 计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. PS: dp[i]=dp[i-1]+(dp[i-1]-dp[i-2])*(10-(i-1)); 加上dp[i-1]没什么可说的,加上之前的数字 dp[i-1]-dp[i-2]的意思是我们上一次较上上一次多出来的各位…
题目链接 357. 计算各个位数不同的数字个数 题意: 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. 思路 法1:DFS+回溯 前导0单独处理,其余位置按0~9顺序每次插入,用一个数组vis[10]记录已经用过的数字 法2:数学 设f[i]表示i位数的有效数字,比如f[1]=10,f[2]=9*9…
计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. 解题分析: 题目要就就是找出 0≤ x < 10n中各位数字都不相同的数的个数.要接触这道题只需要理解: 1.设f(n)表示n为数字中各位都不相同的个数,则有countNumbersWithUniqueDigits(n)=…
一.题目描述 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. 二.题目解析 排列组合.第一位有9种,第二位有9种,....第10位有1种,大于10位肯定有重复,返回0 三.代码实现 class Solution { public: int countNumbersWithUniqueDigits(i…
#include <iostream> #include <assert.h> using namespace std; int ato(const char *str) { ,e=,s=; ,min=-; ; ]={}; unsigned ; while(*str==' '){ //过滤掉连续空格 str++; } ')){ if(*str=='-'||*str=='+'){ //过滤掉正负号 if(*str=='-') f=-; str++; } ') //过滤掉前面的无用的0…
LeetCode:137. 只出现一次的数字 II 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,3,2] 输出: 3 示例 2: 输入: [0,1,0,1,0,1,99] 输出: 99 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/single-number-ii 著作权归领…
最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面: 从这个主界面可以看到,它包含标题,菜单栏,工具栏. 标题是给人一个认识,这是什么游戏,标题设置为:“猜数游戏”: 而菜单栏和工具栏才是游戏的核心,它要保证能够完成游戏的基本功能. 菜单栏和工具栏是对应的,包含了”start“,"help","restart"这三个菜…
/** * 描述:输入一行字符串,并且统计出其中英文字母.空格.数字和其它字符的个数. * 分析:利用for语句,条件为输入的字符不为 '\n ' * 作者:徐守威 */ package com.xushouwei; import java.util.*; public class T7 { public static void main(String[] args) { //输入字符串 System.out.println("请输入您要输入的字符串:"); Scanner sc=ne…
从键盘上输入字符,(1)分别统计一下其中字母,数字,其他字符的个数, (2)将统计的字母,数字,其他字符的个数以柱状图的形式打印.例如 5 ***** *****     3 *****   *****     2 *****   *****   ***** *****   *****   ***** alp     num     oth 思路解析: 在统计了字母.数字和其他字符的个数之后,分别记作alpN, numN, othN.取三者最大值hMax.分别取alpN, numN, othN与…
背景: 电话面试&手撕代码 2019.03.22 Mufasa 问题: 一串数字中,只有一个数字出现一次,其他数字都出现两次,查找出这个数字 条件: 这串数字是有序数 解决方法: 核心代码只有4行 类似冒泡,但又不是冒泡只比较其中的偶数元素和偶数下一个元素,即: d1 = -1for i in range(int(len(d0) / 2)): if d0[i * 2] != d0[i * 2 + 1]: d1 = i * 2 break 如果没有查找到这个数(其实上面的遍历,直接忽略了最后一个数…