☆打卡算法☆LeetCode 168. Excel表列名称 算法解析

简介: ☆打卡算法☆LeetCode 168. Excel表列名称 算法解析

大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。

一、题目

1、算法题目

“给定一个整数,返回它在Excel表中相对应的列名称。”

2、题目描述

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

示例 1:
输入: columnNumber = 1
输出: "A"
示例 2:
输入: columnNumber = 28
输出: "AB"

二、解题

1、思路分析

这道题就是根据序号,返回对应的名称。

跟传统的26进制相比,题目所对应的进制数量上多了1,减去1再用传统的26进制表示。

求某个数的26进制表示,可以使用取余运算,取得最后一位,然后进行除法运行,直到某个数为0即可。

然后将这个数字转成的26进制转化为字符串。

2、代码实现

代码参考:

class Solution {
    public String convertToTitle(int columnNumber) {
        StringBuffer sb = new StringBuffer();
        while (columnNumber > 0) {
            int a0 = (columnNumber - 1) % 26 + 1;
            sb.append((char)(a0 - 1 + 'A'));
            columnNumber = (columnNumber - a0) / 26;
        }
        return sb.reverse().toString();
    }
}

1702377076898.jpg

3、时间复杂度

时间复杂度:O(log26 cn)

时间复杂度为cn转换成26进制的位数。

空间复杂度:O(1)

返回值不计入时间复杂度。

三、总结

这道题是求1-27跟A-Z之间的映射:

1、将数据映射到26进制表示的范围 2、将数字以26进制表示 3、将26进制转化为字符串

相关文章
|
2月前
|
域名解析 网络协议 Serverless
阿里云DNS常见问题之阿里云DNS不再支持自定义NS名称功能如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
2月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
2月前
|
前端开发 UED
前端解析Excel文件
前端解析Excel文件
36 0
|
4月前
|
C++
Excel 表列序号(C++)
Excel 表列序号(C++)
23 0
|
5月前
|
算法
算法编程(十三):Excel 表列序号
算法编程(十三):Excel 表列序号
30 0
|
7天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
16天前
【力扣】168. Excel表列名称、171. Excel 表列序号
【力扣】168. Excel表列名称、171. Excel 表列序号
|
2月前
|
算法 编译器 C语言
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
45 1
|
2月前
|
安全 Java 数据库连接
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
155 0
|
2月前
|
算法 Python
Python基础算法解析:K最近邻算法
Python基础算法解析:K最近邻算法
22 2

推荐镜像

更多