0
点赞
收藏
分享

微信扫一扫

【小Y学算法】⚡️每日LeetCode打卡⚡️——46.Excel 表列序号

丹柯yx 2022-03-25 阅读 199




  • ​​????前言​​
  • ​​????原题样例:Excel 表列序号​​
  • ​​????C#方法:深度优先搜索​​
  • ​​????Java 方法一:二分查找​​
  • ​​????总结​​
  • ​​????往期优质文章分享​​


【小Y学算法】⚡️每日LeetCode打卡⚡️——46.Excel 表列序号_c#

????前言

???? 算法题 ????


  • ???? 每天打卡一道算法题,既是一个学习过程,又是一个分享的过程????
  • ???? 提示:本专栏解题 编程语言一律使用 C# 和 Java 两种进行解题
  • ???? 要保持一个每天都在学习的状态,让我们一起努力成为算法大神吧????!
  • ???? 今天是力扣算法题持续打卡第46天????!


???? 算法题 ????

????原题样例:Excel 表列序号

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。

例如

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...

示例 1:

输入: columnTitle = "A"
输出: 1

示例 2:

输入: columnTitle = "AB"
输出: 28

示例 3:

输入: columnTitle = "ZY"
输出: 701

示例 4:

输入: columnTitle = "FXSHRXW"
输出: 2147483647

提示:

  • 1 <= columnTitle.length <= 7
  • columnTitle 仅由大写英文组成
  • columnTitle 在范围 [“A”, “FXSHRXW”] 内

????C#方法:深度优先搜索

【小Y学算法】⚡️每日LeetCode打卡⚡️——46.Excel 表列序号_leetcode_02

思路解析

代码:

public class Solution {
public int TitleToNumber(string columnTitle) {
int number = 0;
int multiple = 1;
for (int i = columnTitle.Length - 1; i >= 0; i--) {
int k = columnTitle[i] - 'A' + 1;
number += k * multiple;
multiple *= 26;
}
return number;
}
}

执行结果

通过
执行用时:68 ms,在所有 C# 提交中击败了84.52%的用户
内存消耗:24.4 MB,在所有 C# 提交中击败了96.28%的用户

复杂度分析

时间复杂度:O( n )
空间复杂度:O( 1 )

????Java 方法一:二分查找

思路解析

【小Y学算法】⚡️每日LeetCode打卡⚡️——46.Excel 表列序号_leetcode_02

代码:

class Solution {
public int titleToNumber(String columnTitle) {
int number = 0;
int multiple = 1;
for (int i = columnTitle.length() - 1; i >= 0; i--) {
int k = columnTitle.charAt(i) - 'A' + 1;
number += k * multiple;
multiple *= 26;
}
return number;
}
}

执行结果

通过
执行用时:1 ms,在所有 Java 提交中击败了10.00%的用户
内存消耗:38.6 MB,在所有 Java 提交中击败了5.08%的用户

复杂度分析

时间复杂度:O( n )
空间复杂度:O( 1 )

????总结

  • 今天是力扣算法题打卡的第四十六天!
  • 文章采用 ​​C#​​和 ​​Java​​ 两种编程语言进行解题
  • 一些方法也是参考力扣大神写的,也是边学习边分享,再次感谢算法大佬们
  • 那今天的算法题分享到此结束啦,明天再见!
    【小Y学算法】⚡️每日LeetCode打卡⚡️——46.Excel 表列序号_leetcode_04


举报

相关推荐

0 条评论