LeetCode算法题-Base 7(Java实现)

快手面试算法题合集 1.力扣原题:最长不重复序列 import java.util.*; public class kuaishou { public static void main(String[] args){ Scanner in=new Scanner(System.in); String s=in.nextLine(); System.out.println(longestPalindrome(s)); } public static String longest 阅读详情

这是悦乐书的第247次更新,第260篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第114题(顺位题号是504)。给定一个整数,返回其基数为7的字符串表示。例如:

输入:100

输出:“202”

输入:-7

输出:“-10”

注意:输入范围为[-1e7,1e7]。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

直接使用包装类Integer的toString(arg, arg2)方法,将arg转为对应arg2进制的字符串。

public String convertToBase7(int num) {
    return Integer.toString(num, 7);
}

03 第二种解法

利用迭代的思路来正常解。

特殊情况:当num为0的时候,直接返回字符串0。

正常情况:如果num为负数,先将其转为正数,并做一个标记。为了将num转为7进制的字符串,肯定离不开取余和除法。

我们先来看看题目所给示例100,其7进制数为202,可以将其拆分为2x7x7+0x7+2,从后往前看,最后一位是将100对7取余,余数为2,再将其除以7,因为已经计算了一位,得到14,14再对7取余,余数为0,再将其除以7,得到商为2,2再对7取余,余数为2,2再除以7,商为0,循环结束。

所以,思路就是取余后,再除以7,直到num等于0,如果有负号,最后在补上去。

public String convertToBase7_2(int num) {
    if (num == 0) {
        return "0";
    }
    StringBuilder sb = new StringBuilder();
    boolean flag = false;
    if (num < 0) {
        flag = true;
    }
    num = Math.abs(num);
    while (num != 0) {
        sb.append(num%7);
        num /= 7;
    }
    if (flag) {
        sb.append("-");
    }
    return sb.reverse().toString();
}

04 第三种解法

利用递归的思路。

第二种解法是利用迭代,我们也可以利用递归的方法。如果num为负数,先将其转为正数再参与计算,如果num小于7,直接返回以num为值的字符串,然后调用自身,新参数为num除以7,并且要连接上num对7取余的余数。

public String convertToBase7_3(int num) {
    if (num < 0) {
        return "-" + convertToBase7_3(-num);
    }
    if (num < 7) {
        return num + "";
    }
    return convertToBase7_3(num/7) + num%7;
}

05 小结

算法专题目前已日更超过三个月,算法题文章114+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

【中等】力扣算法题解析LeetCode50:Pow(x,n) 本文介绍了快速幂算法(迭代法)实现pow(x, n)函数的解题思路和Java代码实现。核心步骤包括:处理负数指数、使用位运算进行快速幂计算。算法通过将指数分解为二进制形式,每次迭代将底数平方,仅当二进制位为1时才乘入结果,实现O(logn)的时间复杂度。代码使用long类型避免溢出,并通过位运算优化性能。 阅读详情

相关推荐

Java算法刷题带注释Leetcode

Java算法刷题带注释Leetcode,基础算法

Java 中 LeetCode 热门算法精讲 最新面试题

动态规划是解决优化问题的重要方法,适用于问题具有重叠子问题和最优子结构特点的情况,通过递推的方式逐步构建最优解。快速排序是一种高效的排序算法,通过分治法的策略,将一个大问题分解为小问题来解决,从而达到整体上的高效排序。动态规划解决股票买卖问题时,关键在于状态的定义和转移,以及对初始状态的处理,从而得到最终的最大利润。计算表达式的值是编程中的常见需求,需要注意运算符优先级和括号的处理,栈是实现这一功能的理想数据结构。寻找数组交集是常见的算法问题,通过集合的方式可以有效地解决,同时考虑算法的时间和空间复杂度。

知识极客 1075

leetcode 算法题 有答案java

目前 需要去面试 据说面试前需要做一道算法题 所以搜集了一些leetcode的算法题共享

LeetCode算法(Java)哈希表部分

力扣刷题 哈希表 数据结构与算法 Java 散列表

m0_62388538的博客 192

半导体设备上位机开发:我的经验与新人指导

半导体设备上位机开发是一项复杂而富有挑战性的工作,需要扎实的技术基础和丰富的经验。如果你对半导体设备上位机开发感兴趣,欢迎随时与我交流,我会尽力帮助你!

qq_43518667的博客 2735

华为使用MicroG安装并使用Google服务教程

鉴于众多华为手机用户因无法使用Google服务而感到不便,我经过多次摸索和测试,总结了一份简单易懂的教程,希望能够帮助到大家。无论是需要使用Google Play商店下载应用,还是需要使用Google服务进行工作和学习,本文将详细介绍如何在华为手机上安装并使用Google服务。二、前置条件软件要求:Aurora Store(替代Google Play商店)、MicroG Companion、MicroG Server(替代Google框架)

weixin_41926602的博客 3万+

leetcode 递归(回溯)——java实现

回溯算法称为爆搜(暴力解法 动态规划只需要求我们评估**最优解是多少**;回溯算法要求**搜索得到所有的方案** 总结一下回溯dfs的一般写法。

weixin_44040169的博客 1122

soul聊天协议逆向

通过观察上面的CFG发现,该混淆符合以下逻辑,整体思路就是先查找主分发器,一般被引用次数最多的那个块就是主分发器,引用主分发器的块大概率是真实块,再使用unicorn模拟执行,遍历每一个分支,记录每一个块,如果某一个块是上次记录的块则也为真实块,无后继的块则为retn块,剩下的就是无用块。通过Frida Hook libc.so后发现,聊天协议走的是JAVA层的socket,然后Hook JAVA层相关函数得到如下调用堆栈。里面调用的函数不是很多,所以。不行不行,革命要彻底!

2503_90751789的博客 3217

Leetcode刷题、常用算法汇总(Java版本)

i < k;i++) {i++) {✔公平的糖果棒交换① 题目② 思路方法一:暴力双层for循环 超时方法二:哈希表。时间复杂度:O(n + m)O(n+m),其中 nn 是序列 AA 的长度,mm 是序列 BB 的长度。空间复杂度:O(n)O(n),其中 nn 是序列 AA 的长度。我们需要建立一个和序列 AA 等大的哈希表。③ 代码i++) {j++) {++y;

2401_87254774的博客 1461

用FSL的eddy_topup pipeline完整处理DTI数据:从原理到实战,搞定涡流和磁化率畸变

本文详细介绍了如何使用FSL的eddy_topup pipeline完整处理DTI数据,解决涡流和磁化率畸变问题。从原理到实战,涵盖了数据格式转换、脑提取、b0图像处理等关键步骤,并提供了acqparams.txt配置和eddy命令的详细解析,帮助研究人员高效完成DTI数据校正。

weixin_29235525的博客 286

告别零碎资料!手把手教你搞定ASTER L1T数据的预处理全流程(附ENVI实操)

本文详细介绍了ASTER L1T数据的预处理全流程,包括数据获取、质量检查、ENVI实操步骤(辐射定标、大气校正、几何精校正)以及热红外波段深度处理。特别适合地信领域初学者和研究人员,帮助快速掌握ASTER L1T数据处理技巧,提升定量反演研究效率。

weixin_30385925的博客 356

LeetCode 算法刷题目录 (Java)

保存自己的刷题纪录,方便以后复习。

代码星辰的博客 1万+

3D IC中Memory-on-Logic堆叠测试的DFT解决方案与工程实践

在半导体行业,随着摩尔定律逼近物理极限,3D IC技术通过芯片垂直堆叠实现性能提升和异构集成,已成为重要发展方向。其核心原理是利用硅通孔(TSV)或微凸块实现芯片间电气互连,将多个不同功能的芯片(如逻辑芯片与存储芯片)集成在一个封装内。这项技术的核心价值在于能大幅提升系统性能、降低功耗并实现更小的封装尺寸。然而,芯片堆叠后,传统的测试方法面临巨大挑战,尤其是测试访问存在物理屏障,无法直接探测被覆盖的芯片接口。为此,可测试性设计(DFT)成为确保3D IC可靠性与量产可行性的关键技术。它通过在设计阶段植入专用

weixin_42521058的博客 632

java 1e7_LeetCode算法题-Base 7(Java实现)

这是悦乐书的第247次更新,第260篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第114题(顺位题号是504)。给定一个整数,返回其基数为7的字符串表示。例如:输入:100输出:“202”输入:-7输出:“-10”注意:输入范围为[-1e7,1e7]。本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试...

weixin_39647412的博客 313

Python 爬虫实战:手机应用商店评论数据爬取与分析

移动应用市场蓬勃发展,用户的评论数据包含了大量有价值的信息,如用户满意度、功能反馈、改进建议等。通过分析这些评论,我们可以挖掘应用的优缺点,甚至预测用户趋势。由于 Apple App Store 评论是动态加载的,我们使用。本篇博客将详细介绍如何使用 Python 爬取。爬取大量数据时,可能会遇到反爬机制。库获取 Google Play 评论。评论数据是动态加载的,需要使用。

2201_76125261的博客 2323

手把手教你 Ubuntu 24.04 离线安装 Ollama

本文介绍 Ubuntu 下离线安装 Ollama 并使用 Ollama 部署 llama3.1-70b 大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1021

LeetCode-504. Base 7 [C++][Java]

Given an integernum, returna string of itsbase 7representation.

贫道绝缘子的博客 879

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

放leetcode代码_LeetCode算法第504. Base 7

技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后> 到中级难度,最后到hard难度全部完。目前我选择C语言,Python和Java作为实现语言,因为这三种语言还是比较典型的。由于篇幅和> 精力有限,其他语言的实现有兴趣的朋友请自己尝试。初级难度说的差不多的时候,我打算再加点其他内容,我可能会从操作系统到协议栈,从分布式> 聊到大数据...

weixin_42511206的博客 102

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LeetcodeJavaDebugEnhancer -- 一个用于Java的Leetcode算法题的本地调试增强器

🚀 一个用于Java的Leetcode算法题的本地调试增强器 🚀 [Github] Gradle Jar 资源 索引 托管仓库 点击这里浏览本项目的托管仓库 标准-Jar 点击这里直接下载(标准-Jar) 全量-Jar 点击这里直接下载(全量

qq_33794872的博客 2142

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

金三银四冲刺力扣热门算法题!50. Pow(x, n)

本题要求实现 pow(x, n),即计算 x 的 n 次幂 x^n。提供python、Java、C三语答案解析

引用原创内容标明出处即可 1459

爬虫实现力扣(LeetCode)本地刷题的快捷工具

为了方便我们在本地快速搭建起力扣的解题环境,我写了一个小工具帮助我们把力扣的题目描述爬取到本地,并生成基础的代码,这样我们就能快速地专注于解题本身了。接下来我将展示一下工具的使用效果,并向大家提供源代码及部署方式。

MakerHu的博客 2379

将字符串转为16进制数_LeetCode基础算法题第134篇:如何将一个十进制数转换成7进制...

技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后> 到中级难度,最后到hard难度全部完。目前我选择C语言,Python和Java作为实现语言,因为这三种语言还是比较典型的。由于篇幅和> 精力有限,其他语言的实现有兴趣的朋友请自己尝试。初级难度说的差不多的时候,我打算再加点其他内容,我可能会从操作系统到协议栈,从分布式> 聊到大数据...

weixin_34635170的博客 274

【困难】力扣算法题解析LeetCode233:数字1的个数

题目要求统计所有小于等于 n 的非负整数中数字 1 出现的总次数。通过数学方法按位计算,避免遍历每个数字,提升效率。核心思路是将数字拆分为高位、当前位和低位,分别计算每位的贡献。关键点:分类计算:根据当前位数字(0、1 或 >1),结合高低位确定 1 的出现次数。数学推导:通过 high * base + low + 1 等公式直接计算每位的贡献。

ylumwd的博客 520

LeetCode算法题-- 通配符匹配

LeetCode算法题-- 通配符匹配 题目来源:https://leetcode-cn.com/problems/wildcard-matching/ 题目要求 给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘’ 的通配符匹配。 ‘?’ 可以匹配任何单个字符。 '’ 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空,...

wuyusen123456的博客 291

dp算法 力扣978、力扣139、力扣467

dp算法 力扣978、力扣139、力扣467

m0_68700019的博客 1655
上一篇: LeetCode算法题-Find Mode in Binary Search Tree(Java实现)
下一篇: LeetCode算法题-Relative Ranks(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值