偶系渣渣灰:魔力手环快速幂不服不行
投递网易等公司10个岗位 >
0 点赞 评论 收藏
分享
彩笔1990:平衡数:对所有位的乘积判断是否是一个平方数。
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); while (in.hasNext()) { getValue(in.nextInt());
}
} public static void getValue(int data) {
String s = String.valueOf(data); int R = 1; for (int i = 0; i < s.length(); i++) {
R = R * (s.charAt(i) - '0');
} int r = (int) Math.sqrt((double) R); if (r * r == R) System.out.println("YES"); else System.out.println("NO");
}
}
投递美的集团等公司10个岗位 >
0 点赞 评论 收藏
分享
向宇同桌:查看图片
0 点赞 评论 收藏
分享
不负时光:我TMD服了
投递网易等公司10个岗位 >
0 点赞 评论 收藏
分享
toraoh:问答题参考解法:
题目大意:给你一个ipv4地域库(ipv4地址的网段表示法,比如12.34.56.0/24,对应相应地理位置的表),保证各个网段互不重叠,但是一个地域可以对应多个网段。请设计一个数据结构,能过快速地查询用户询问的ip所对应的地理位置。请说明你的方法的时空复杂度。
参考解法:
计算机中ipv4地址是32位无符号整数。
我们将ipv4的地址和网段都变成32位无符号整数,然后转换成对应的32位的二进制表示。
之后使用字典树/键树/Trie(二叉树也可以),每个节点有2个分支:一个分支表示下一位是0,另一个分支表示下一位是1.
首先要将所有地域库的信息插入这个树中。对网段,保留相应的掩码长度,在掩码长度最后一位对应的节点,顺带标记上,这是一个网段节点,对应的地域为xxx。
插入完成之后,我们可以处理查询。对每个查询,转成32位的01串,在树上,根据每一位的具体值,决定往下走到哪个节点,来进行查找。当走到某个节点,走不下去的时候:
如果这个节点没有地域信息,说明库中没有对应条目。
如果这个节点有地域信息,说明我们找到了,返回这个地域信息。
综上所述:
插入阶段:
时间复杂度O(32n)=O(n)
空间复杂度O(32n)=O(n)
其中n为地址库中的地址数目
查询阶段:
时间复杂度O(32)=O(1)
空间复杂度O(1)
投递滴滴等公司10个岗位 >
0 点赞 评论 收藏
分享
xjjsdsb:希望今晚能过
0 点赞 评论 收藏
分享
关注他的用户也关注了: