题目: 给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB 29-> AC ... 52->AZ 需要的结果: 例如: 输入: 1 输出: "A" 输入: 28 输出: "AB" 输入: 701 输出: "ZY"整体思路:因为 题目 给的是 A = 1, 和 Excel 表格 A 是…
例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ... 示例 1: 输入: 1 输出: "A" 示例 2: 输入: 28 输出: "AB" 示例 3: 输入: 701 输出: "ZY" public static String convertToTitle(int n) { StringBuilder sb = new StringBuilder()…
题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0. 解法一:暴力求解.从1开始查找M,然后判断M*N=X这个数字是否只含有0,1. 解法二:由于没有直接的数学方法能帮我们直接得到M的值,所以我们只能进行搜索.由于相对M,乘积N*M具有明显的特征,需要搜索的空间要小很多,所以我们对乘积N*M进行搜索.如果N*M的结果有K位,则要循环2^K次,我们发现K的结果能轻易超过40,所以这个运行时间还是相当长.同余运算具有等价关系,mod N = i(0<…
"""给定一个正整数,实现一个方法求出离该整数最近的大于自身的 换位数 -> 把一个整数各个数位进行全排列""" # 使用 permutations() 方法实现import itertools def full_arrangement(num): my_str = '' my_list = [] permutation = list(itertools.permutations(str(num), len(str(num)))) for…
[题目] 给定一个字符串str,返回str中最长回文子串的长度 [举例] str="123", 1 str="abc1234321ab" 7 [暴力破解] 从左到右遍历字符串,遍历到每个字符的时候,以当前字符作为中心能够产生多大的回文字符串, 奇回文和偶 回文寻找方式不一样. 缺点:前面的寻找无法为后面的寻找提供任何帮助.没有记忆.加上记忆就好了. [Manacher] Manacher算法解决的问题是在线性时间内找到一个字符串的最长回文子串. 奇回文和偶回味在判断…
<span style="color:#FF0000;">第一步:把输入的数字转为字符串n.ToString() 第二步:求出字符串的长度即为正整数的位数 第三步:从后向前逆序输出</span> 附代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; //给一个正整数, //要求:一.求它是几位数,二.逆序打印出各位数字. namespa…
public class C3 { public static void main(String[] args) { ArrayList<TreeNode> res = generateTrees(5); System.out.println(res); } public static ArrayList<TreeNode> generateTrees(int n) { if(n == 0){ return new ArrayList<TreeNode>(); } re…
package a; public class ShuZi { int m; public int getM() { return m; } public void setM(int m) { this.m = m; } public void shu() { System.out.println("输入的数字是:"+m); if(m>99999) { System.out.println("The number is too large"); } else…
思想: 思想:用快慢指针先判断是否有环,有环则 假设头结点到环入口距离为n,环入口到快慢指针相遇结点距离为m,则慢指针走的路程 为m+n,而快指针走的路程为m+n+k*l (k*l表示绕环走的路程),我们知道快指针路程是慢指针 路程二倍,则k*l = m+n: 找到相遇结点后,让快指针指向头结点,然后让快慢指针都向后移动,当快指针向后移动n次时,就找到了环入口, 代码实现如下: public ListNode detectCycle(ListNode head) { if(head == nul…
""" #给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 #返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况) 解题思路: 1.设定一个空字典,去存储列表中的值和值出现的次数 2.使用L.count()方法可以统计出L中值出现的次数 3.使用sorted方法可以进行排序,sorted(iterable,key,reverse) 注意key是函数 4.列表中的元祖取值 d[i][j] i是哪一个元祖,j是元祖中的第几个值 ""…