2019-10-14 22:21:29

问题描述

问题求解

暴力求解必然会超时,那么就需要考虑数学的方法来降低时间复杂度了。

    public int atMostNGivenDigitSet(String[] D, int N) {
int n = D.length;
int res = 0;
char[] chs = new char[n];
for (int i = 0; i < n; i++) {
chs[i] = D[i].charAt(0);
}
char[] nums = String.valueOf(N).toCharArray();
int len = nums.length;
for (int i = 1; i < len; i++) res += Math.pow(n, i);
int i = 0;
while (i < len) {
for (char c : chs) {
if (c < nums[i]) res += Math.pow(n, len - i - 1);
}
if (!isIn(nums[i], chs)) break;
i++;
}
return i == len ? res + 1 : res;
} private boolean isIn(char c, char[] chs) {
for (char ch : chs) {
if (ch == c) return true;
}
return false;
}

  

由最多N个给定数字集组成的数字 Numbers At Most N Given Digit Set的更多相关文章

  1. 如何用卷积神经网络CNN识别手写数字集?

    前几天用CNN识别手写数字集,后来看到kaggle上有一个比赛是识别手写数字集的,已经进行了一年多了,目前有1179个有效提交,最高的是100%,我做了一下,用keras做的,一开始用最简单的MLP, ...

  2. 给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X

    题目:给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X 思路一: 1,先采用归并排序对这个数组排序, 2,然后寻找相邻<k,i>的两数之和sum,找到恰好sum>x的 ...

  3. 【TensorFlow篇】--Tensorflow框架实现SoftMax模型识别手写数字集

    一.前述 本文讲述用Tensorflow框架实现SoftMax模型识别手写数字集,来实现多分类. 同时对模型的保存和恢复做下示例. 二.具体原理 代码一:实现代码 #!/usr/bin/python ...

  4. 南大算法设计与分析课程OJ答案代码(1)中位数附近2k+1个数、任意两数之和是否等于给定数

    问题1 用来测试的,就不说了 问题2:中位数附近2k+1个数 给出一串整型数 a1,a2,...,an 以及一个较小的常数 k,找出这串数的中位数 m 和最接近 m 的小于等于 m 的 k 个数,以及 ...

  5. 李宏毅 Keras手写数字集识别(优化篇)

    在之前的一章中我们讲到的keras手写数字集的识别中,所使用的loss function为‘mse’,即均方差.那我们如何才能知道所得出的结果是不是overfitting?我们通过运行结果中的trai ...

  6. 【POI】使用POI 创建生成XLS,打开xls文件提示【此文件中某些文本格式可能已经更改,因为它已经超出最多允许的字体数。】

    使用POI 创建生成XLS,打开xls文件提示[此文件中某些文本格式可能已经更改,因为它已经超出最多允许的字体数.] 原因: 是因为在POI处理xls的过程中,太多次调用了: HSSFFont fon ...

  7. Excel,此文件中的某些文本格式可能已经更改,因为它已经超出最多允许的字体数。

    既然是超出最多允许的字体数,那么就不要循环创建IFont.先创建一个IFont font=wk.CreateFont();后面都使用它即可.

  8. 计算"aabbc"中最多的相同字母数

    package Test; import java.util.HashMap; import java.util.Map; public class test3 { /** * 计算"aab ...

  9. sum_series() 求一列数的指定个数的数和(5个数字的和)

    #include <stdio.h> #include <stdarg.h> /*用sum_series() 求一列数的指定个数的数和(5个数字的和)*/ double sum ...

随机推荐

  1. arm-eabi-addr2line工具跟踪Android调用堆栈

    使用arm-eabi-addr2line工具跟踪Android调用堆栈作者:liangshengyang转自:http://www.linuxidc.com/Linux/2011-01/31803.h ...

  2. SQL JOIN 和 UNION 用法

    1 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P ...

  3. JAVA WEB基础巩固之Json、Ajax

    一.Json(Json介绍)json校验工具 Json是JavaScript object notation的缩写,优点是易读易编写易于解析: 例如:Object: { "name" ...

  4. (转载)Eclipse中使用SVN

    为了方便个人使用,转载过来的,如需查阅,请前往原文地址:http://www.cnblogs.com/wvqusrtg/p/4993849.html 1.在Eclipse里下载Subclipse插件 ...

  5. IDEA Java 类注释、方法注释模板(可实现自动参数使用生成)

    JAVA 类文件注释设置 设置地方: 模板 /** * <p> * $description * </p> * * @author Tophua * @since ${DATE ...

  6. Nginx使用和配置

    概要: Nginx 简介 Nginx 架构说明 Nginx 基础配置与使用 Nginx 反向代理与负载均衡 Nginx 实现高速缓存 Nginx 性能参数调优 一.Nginx 简介与安装 Nginx ...

  7. el-select下拉加载(实现懒加载)

    情况:项目出现了下拉数据量过大,出现页面卡死问题,反馈到我这:当时实现思路1.使用render函数去渲染下拉框 试了发现卡死情况依然存在,所以尝试方法2 2.使用原生js去添加下拉框的<opti ...

  8. Linux内核文档:如何写符合 kernel-doc 规范的注释

    简介 Linux内核使用 Sphinx 实现把 Documentation 目录下的 reStructuredText 文件转换为非常漂亮的文档.文档既可以通过 make htmldocs 转换成 H ...

  9. 某些时候 v-if 会导致 v-modal 内部数据获取不到 也watch不到,这个时候用v-show即可,另外提一下数组要整体赋值才有双向绑定

    某些时候 v-if 会导致 v-modal 内部数据获取不到 也watch不到,这个时候用v-show即可,另外提一下数组要整体赋值才有双向绑定

  10. debug.js在手机上打印调试信息

    在做移动端开发的时候大家应该都遇到过这么一个问题:如何在手机上打印调试信息? 在pc端我们通常会用console.log 或者 alert,但大家知道console.log在手机上是看不到打印信息的: ...