首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Java中从一组数字中找到完美平方?

在Java中,可以使用以下步骤来找到一组数字中的完美平方:

  1. 首先,定义一个方法,例如findPerfectSquares,该方法接受一个整数数组作为参数,并返回一个整数数组,其中包含输入数组中的完美平方数。
  2. 在方法内部,创建一个空的ArrayList来存储完美平方数。
  3. 使用循环遍历输入数组中的每个数字。
  4. 对于每个数字,可以使用Math.sqrt()方法来计算其平方根。然后,将该平方根转换为整数,使用Math.round()方法或强制类型转换。
  5. 检查转换后的整数的平方是否等于原始数字。如果相等,则将该数字添加到ArrayList中。
  6. 循环结束后,将ArrayList转换为整数数组,并返回结果。

以下是一个示例代码实现:

代码语言:txt
复制
import java.util.ArrayList;
import java.util.Arrays;

public class PerfectSquareFinder {
    public static int[] findPerfectSquares(int[] nums) {
        ArrayList<Integer> squares = new ArrayList<>();

        for (int num : nums) {
            double squareRoot = Math.sqrt(num);
            int roundedSquareRoot = (int) Math.round(squareRoot);
            if (roundedSquareRoot * roundedSquareRoot == num) {
                squares.add(num);
            }
        }

        int[] result = new int[squares.size()];
        for (int i = 0; i < squares.size(); i++) {
            result[i] = squares.get(i);
        }

        return result;
    }

    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] perfectSquares = findPerfectSquares(nums);
        System.out.println("Perfect squares: " + Arrays.toString(perfectSquares));
    }
}

这段代码将在给定的数字数组中找到完美平方数,并将结果打印出来。在示例中,输入数组为{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},输出为[1, 4, 9],这是输入数组中的完美平方数。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(TBC):https://cloud.tencent.com/product/tbc
  • 腾讯云物联网平台(IoT Hub):https://cloud.tencent.com/product/iothub
  • 腾讯云移动开发平台(MTP):https://cloud.tencent.com/product/mtp
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 哈希表查询_进入为结界的世界

哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好的、可直接使用的 API, JAVA 中有 MAP 集合、C++ 的 MAP...间界叠加:从一端沿分割线来回折叠,然后对齐相加。 因有相加求和计算,折叠法适合数字类型或能转换成数字类型的关键字。假设现在有很多商品订单信息,为了简化问题,订单只包括订单编号和订单金额。...按 2 位一还是 3 位一进行分割,可以根据实际情况决定。 第二步: 把分割后的数字相加 202+010+11,得到结果:223。...None, None, 200, None, None, 300] 订单号为19981112的金额为300 ''' 2.3.2 平方取中法 平方取中法:先是对关键字求平方,再在结果取中间位置的数字...求平方再取算法,是一种较常见的哈希算法,从数学公式可知,求平方后得到的中间几位数字与关键字的每一位都有关,取中法能让最后计算出来的哈希值更均匀。

45520

70个NumPy练习:在Python下一举搞定机器学习矩阵运算

答案: 45.如何在numpy数组中找到最频繁出现的值? 难度:1 问题:找到iris数据集中最常见的花瓣长度值(第3列)。 输入: 答案: 46.如何找到首次出现的值大于给定值的位置?...输入: 输出: 输出包含10列,表示1到10之间的数字。这些值是相应行数字数量。 例如,单元(0,2)的值为2,这意味着数字3在第一行恰好出现2次。...使用iris的species的样品作为输入。 输入: 输出: 答案: 53.如何根据给定的分类变量创建分组ID? 难度:4 问题:根据给定的分类变量创建ID。...答案: 58.如何在numpy数组中找到重复的记录? 难度:3 问题:在给定的numpy数组中找到重复的条目(从第2个起),并将它们标记为True。第一次出现应该是False。...输入: 答案: 63.如何在一维数组中找到所有局部最大值(或峰值)? 难度:4 问题:在一维numpy数组a查找所有峰值。峰值是两侧较小值包围的点。

20.7K42
  • 程序员必备的50道数据结构和算法面试题

    我在面试中经常看到的主题区域是数组、链表、字符串、二叉树,以及源于算法的问题(例如字符串算法,排序算法, quicksort 或基数排序,以及其他杂项),这就是你能在这篇文章中找到主要内容。...3、在一个未排序的整型数组,如何找到最大和最小的数字? 4、在一个整型数组,如何找到一个所有成对的数字,满足它们的和等于一个给定的数字?...5、如果一个数组包含多个重复元素,如何找到这些重复的数字? 6、用 Java 实现从一个给定数组删除重复元素? 7、如何利用快速排序对一个整型数组进行排序? 8、如何从一个数组删除重复元素?...5、如何检查字符仅包含数字字符? 6、如何在字符串中找到重复字符? 7、如何对给定字符串的元音及辅音进行计数? 8、如何计算给定字符传中特定字符出现的次数? 9、如何找到一个字符串的全排列?...9、如何在给定二叉树中计算叶节点数目? 10、如何在给定数组执行二分搜索?

    3.2K11

    程序员必备的50道数据结构和算法面试题

    我在面试中经常看到的主题区域是数组、链表、字符串、二叉树,以及源于算法的问题(例如字符串算法,排序算法, quicksort 或基数排序,以及其他杂项),这就是你能在这篇文章中找到主要内容。...3、在一个未排序的整型数组,如何找到最大和最小的数字? 4、在一个整型数组,如何找到一个所有成对的数字,满足它们的和等于一个给定的数字?...5、如果一个数组包含多个重复元素,如何找到这些重复的数字? 6、用 Java 实现从一个给定数组删除重复元素? 7、如何利用快速排序对一个整型数组进行排序? 8、如何从一个数组删除重复元素?...5、如何检查字符仅包含数字字符? 6、如何在字符串中找到重复字符? 7、如何对给定字符串的元音及辅音进行计数? 8、如何计算给定字符传中特定字符出现的次数? 9、如何找到一个字符串的全排列?...9、如何在给定二叉树中计算叶节点数目? 10、如何在给定数组执行二分搜索?

    4.3K20

    【面试107问】谷歌等巨头机器学习面试题:从逻辑回归到智力测验

    11.如何在分布(distribution)中找到异常点(anomaly)? 12.如果分布的某种特定趋势是由于一个异常点,你将如何着手调查? 13.你如何评估 Uber 对交通和驾驶状况的影响?...目标是找到所有互粉(如上例的 123,345)。当 list 超出内存时,如何使用 Map / Reduce 解决问题? Capital One 57....从一副牌抽取两张,同一花色的出现概率是多少? IBM 70. p-value 和置信区间是什么? Capital One 71....如何在一个巨大的数据集中找到中位数? Uber 79. 数据工程师:编写一个计算给定数字平方根(精确到百分位)的函数。然后用缓存机制优化函数,避免冗余计算。 Facebook 80....如何在一个二进制搜索树中找到第二大element? 84. 写一个函数,输入两个排序的向量,输出一个排序的向量。 85. 面对一个数字流输入,如何在运行中找到最频繁出现的数字? 86.

    1.6K70

    Python练习题

    一、完美立方   编写一个程序,对任给的正整数N (N≤100),寻找所有的四元(a, b, c, d),使得a^3= b^3 + c^3 + d^3,其中a,b,c,d 大于 1, 小于等于N。   ...输入一个正整数N (N≤100),输出 每行输出一个完美立方。输出格式为: Cube = a, Triple = (b,c,d) 其中a,b,c,d所在位置分别用实际求出四元值代入。   ...当两个完美立方 等式a的值相同,则b值小的优先输出,仍相同则c值小的优先输出,再相同则d值小的先输出。...快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。...(2000年是闰年,1900年不是闰年);   用户输入一个正整数,代表年份,输出该年有多少天?

    1.5K10

    哈希冲突常用解决方法

    2.1 开放寻址法 开放寻址法又叫做开放定址法、开地址法,从发生冲突的那个单元起,按照一定的次序,从哈希表中找到一个空闲的单元。然后把发生冲突的元素存入到该单元的一种方法。...在开放定址法根据探查序列生成方式的不同,细分有:线性探查法、平方探查法、双散列函数探查法、伪随机探查法等。 开放定址法的缺点在于删除元素的时候不能真的删除,否则会引起查找错误,只能做一个特殊标记。...在实际操作平方探查法不能探查到全部剩余的单元。不过在实际应用,能探查到一半单元也就可以了。若探查到一半单元仍找不到一个空闲单元,表明此散列表太满,应该重新建立。...如下一数字:(32、40、36、53、16、46、71、27、42、24、49、64),哈希表长度为13,哈希函数为 H(key)=key%13,则链表法结果如下: 0 1 -> 40...Java Go 等。

    4.3K30

    《程序员数学:杨辉三角》—— 开方作法本源

    任意一个二项式展开后的数字乘积,都可以映射到杨辉三角对应的数字。 二项式展开公式是用来计算给定二项式的指数幂的展开式的公式。.... + y^n 这个公式也正好符合杨辉三角的数字值。 2. 组合数 组合数是数学定义的一种数学概念,用于计算有多少种选择可以从一物品中选择出若干的物品。...把斜对角的数字做加和,会得到一斐波那契数列;1、1、2、3、5、8、13、15、33 4. 次方数 在杨辉三角还有一个非常有意思的特性,就是有2的次方和11次方数。...平方数 在杨辉三角还有一个平方数的规律体现。比如3的平方正好是右侧3+6的结果。4的平方是右侧6+10的结果。...—— 在LeetCode也有这样的题目 - END - ---- 你好,我是小傅哥。一线互联网java 工程师、T8架构师,开发过交易&营销、写过运营&活动、设计过中间件也倒腾过中继器、IO板卡。

    95121

    Go+ 列表解析 list comprehension

    列表解析概述 我们在学完for循环以后,会发现有一些操作for循环是很复杂的,比如说从一个列表取出数据然后追加到另一个列表,我们需要先for循环遍历出所有的列表然后再去追加,这就是常见的遍历取数的问题...for循环解决遍历取数 我们先用for循环来解决遍历取数问题,我们使用列表解析加上cannel就完美解决了这个问题, name := [...]string{"zs", "ls", "ww", "zl"...比如说我们需要去一个切片里面大于3的数字,我们直接加一个判断即可。...给定一个切片,我们想得到这个切片的平方,这就是做一些复杂的数学运算,我们可以这样写。...mathNum := [...]int {1,2,34,5,6,99} b := [num*num for num <- mathNum ] println(b) 同样,如果我们想要获得大于某个数的平方

    32010

    特征工程系列之降维:用PCA压缩数据集

    在特征空间中绘制一数据点。每个数据点都是一个点,整个数据点集合形成一个 blob。在图 6-1(a),数据点在两个特征维度上均匀分布,blob 填充空间。在这个示例,列空间具有完整的等级。...公式 6-12平方和是相当的繁琐。它在矩阵向量格式中会更清晰。我们能做到吗?答案是肯定的。关键在于平方和的同一性:一平方项的和等于向量的平方范数,其元素是那些项,这相当于向量的内积。...而不是单个投影公式 6-4 的向量,我们可以同时投影到 a 的多个向量投影矩阵。...这绝不是完美的,但它允许方便的低维可视化。我们看到 PCA 类似数字彼此接近。数字 0 和 6 位于同一区域,如同 1 和 17,3 和 9。...这里的建模假设是方差充分代表了包含在数据的信息。等价地,该模型寻找线性特征之间的相关性。这在几个应用程序中用于减少相关性或在输入中找到共同因素。PCA 是一种众所周知的降维方法。

    1.4K20

    你应该学习正则表达式

    本教程的示例源代码可以在Github存储库中找到——https://github.com/triestpa/You-Should-Learn-Regex 0 – 匹配任何数字行 我们将从一个非常简单的例子开始...这允许我们在文本块(而不是代码行)匹配年份,这对于搜索段落文本非常有用。 \b ——字边界 (19|20) ——使用或(|)操作数匹配’19′或’20′。...替换模式(\3\2\1\2\4)简单地交换了表达式月份和日期的内容。 以下是我们如何在Javascript中进行这种转换: ?...6.1 – 真实示例 – 从Web页面上的URL解析域名 以下是我们如何使用命名捕获来提取使用Python语言的网页每个URL的域名。 ? 脚本将打印在原始网页HTML内容中找到的每个域名。 ?...8.0 – 语言解析 解析结构化语言,从英语到Java到JSON,使用正则表达式都是一种真正的痛苦。

    5.3K20

    散列表(哈希表)

    1个关键字对应多个记录的情况(比如在一个学校的学生按性别查找,则对应太多的记录),此外散列技术同样不适合于范围查找和排序等操作。...(2) 数字分析法:分析一数据,比如一员工的出生年月日,这时我们发现出生年月日的前几位数字大体相同,这样的话,出现冲突的几率就会很大,但是我们发现年月日的后几位表示月份和具体日期的数字差别很大,如果用后面的数字来构成散列地址...因此数字分析法就是找出数字的规律,尽可能利用这些数据来构造冲突几率较低的散列地址。 此法适合关键字位数比较大的情况。 (3)平方取中法:取关键字平方后的中间几位作为散列地址。...移位叠加是将分割后的每一部分的最低位对齐,然后相加;间界叠加是从一端向另一端沿分割界来回折叠,然后对齐相加。 此法适合事先不知道关键字分布且位数较多的情况。...== (2)再散列法:事先准备多个散列函数,如果用一种函数产生冲突后,立马换另一计算,如此循环,直到找到。

    68880

    解决哈希冲突的常用方法分析

    1.基本概念 哈希算法:根据设定的哈希函数H(key)和处理冲突方法将一关键字映象到一个有限的地址区间上的算法。...2.1 开放定址法 从发生冲突的那个单元起,按照一定的次序,从哈希表中找到一个空闲的单元。然后把发生冲突的元素存入到该单元的一种方法。开放定址法需要的表长度要大于等于所需要存放的元素。...在开放定址法解决冲突的方法有:线行探查法、平方探查法、双散列函数探查法。 开放定址法的缺点在于删除元素的时候不能真的删除,否则会引起查找错误,只能做一个特殊标记。...在实际操作平方探查法不能探查到全部剩余的单元。不过在实际应用,能探查到一半单元也就可以了。若探查到一半单元仍找不到一个空闲单元,表明此散列表太满,应该重新建立。...如下一数字,(32、40、36、53、16、46、71、27、42、24、49、64)哈希表长度为13,哈希函数为H(key)=key%13,则链表法结果如下: 0 1 -> 40 -

    14.2K31

    Java开发者的Python快速进修指南:控制之if-else和循环技巧

    简单介绍在我们今天的学习,让我们简要了解一下Python的控制流程。考虑到我们作为有着丰富Java开发经验的程序员,我们将跳过一些基础概念,变量和数据类型。如果遇到不熟悉的内容,可以随时查阅文档。...在编程,我们经常使用打印语句来进行调试和输出信息。不同于Java的println和print,Python只有一个print函数。...这些是Python中一些基础的语法和习惯,接下来我们将深入探讨更多关于if判断和循环的内容,以及如何在Python灵活运用这些概念。if判断在Python,if判断的灵活性给我们带来了很多便利。...= num ** 2 print(f"{num}的平方是:{square}")else: print("for循环正常结束,执行了else块的业务逻辑。")...在这个例子,我们使用for循环遍历列表numbers,并计算每个元素的平方并输出。同样地,循环正常结束后,执行了else块的代码。

    35620

    查找三 哈希表的查找

    根据哈希函数f(key)和处理冲突的方法将一关键字映射到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”作为记录在表的存储位置,这一映射过程称为构造哈希表。...(2)数字分析法 假设关键字是R进制数(十进制)。并且哈希表可能出现的关键字都是事先知道的,则可选取关键字的若干数位组成哈希地址。...选取的原则是使得到的哈希地址尽量避免冲突,即所选数位上的数字尽可能是随机的。 (3)平方取中法 取关键字平方后的中间几位为哈希地址。...例子 若要将一关键字序列 {1, 9, 25, 11, 12, 35, 17, 29} 存放到哈希表。 采用除留余数法构造哈希表;采用开放定址法处理冲突。...for (i = 0; i < list.length; i++) { this.insertHashTable(ha, p, size, list[i]);     } } 完整代码 哈希查找之JAVA

    1.5K50

    机器学习实战 | 数据探索(变量变换、生成)

    在数据建模,变换是指通过函数替换变量。 例如,通过平方/立方根或对数x替换变量x是一个变换。 换句话说,变换是一个改变变量与其他变量的分布或关系的过程。 1.2、什么时候需要变量变换?...变换变量有许多方法,平方根,立方根,对数,合并,倒数等等。来看看这些方法的细节和利弊。 对数(log):变量求对数是用于在分布图上更改变量分布形状的常用变换方法。...例如,将日期(dd-mm-yy)作为数据集中的输入特征,可以生成新特征,日,月,年,周,工作日,可能与target有更好的关系。 此步骤用于突出显示变量的隐藏关系。 ?...生成虚拟变量 虚拟变量最常用的应用之一是将分类变量转换成数字变量,虚拟变量也称为指标变量(Indicator Variables)。...将分类变量作为统计模型的预测因子是有用的,:性别可以产生两个变量,即为1(Male)和0(No male)的“Var_Male”和值为1(Female)和0(No Female)的“Var_Female

    1.9K60

    谷歌大脑Quoc发布Primer,从操作原语搜索高效Transformer变体

    而当模型参数量大到一定程度的时候,研究人员也在考虑如何在缩小模型的情况下,保持性能不变。...解码器模型程序(DNA, decoder model program)定义了一个自回归语言模型,每个DNA都有一子程序,其中子程序0是MAIN函数的入口点。...指令操作映射到原语词汇表的基本TensorFlow库函数或父DNA子程序之一,原语词汇表由简单的原语TF函数组成,ADD、LOG、MATMUL等等,但像self-attention这样的高级构建块不是搜索空间中的操作...特定操作没有使用的参数就直接被省略掉。 研究人员还提出进化搜索(evolutionary search),目标是在搜索空间中找到最有效的模型架构。...Primer 的改进主要有平方 ReLU 激活并在自注意力的每个 Q、K 和 V 投影后添加一个深度卷积层。

    49720

    【学术】入圈人工智能 你需要了解无监督机器学习的真正能力

    想象一下,你被要求在这个序列确定问号代表的数字:“3-9,4-16,5-25,8-?”你会怎样回答?你的答案可能是64,如果是的话,你是正确的。...可以肯定的是,你可以通过研究这个序列来得出结论,并认识到每个数字后面都带有一个完美平方。你通过研究一个序列,并且确定一个模式来得出结果。...大多数未经训练的机器学习是一种集群分析的形式,其中一数据以一种方式分组,以便每个(或集群)的项目比其他集群的项目更相似。 未经训练的机器学习,就没有必然的结果。...例如,假设一个员工主要从工作网络和家庭网络登录公司系统,但是现在正在从一个新的位置登录。虽然这个人以前从未在新的场所登录过,但他们的其他用户登录过。...因此,对于特定的人来说,这是不正常的,但是因为对于他们的其他用户来说,这是正常的,所以可能这种不正常的结果会引起关注。 在未经训练的机器学习(输出)不是手动选择的。

    76340
    领券