Tag: 算法

Terrain / Mountain算法无法正常工作

我想创建一个有山的地形,使用一个非常基本的原理,由这个高度映射显示: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 0 1 2 3 2 1 0 0 […]

hashmap的第n项

HashMap selections = new HashMap(); 如何在所有HashMap中获取Float的第3个较小值的Integer键? 为此使用HashMap 编辑即时消息 for (InflatedRunner runner : prices.getRunners()) { for (InflatedMarketPrices.InflatedPrice price : runner.getLayPrices()) { if (price.getDepth() == 1) { selections.put(new Integer(runner.getSelectionId()), new Float(price.getPrice())); } } } 我需要第3个较小价格的跑步者,深度为1 也许我应该以另一种方式实现这个?

将任意大小的byte 转换为BigInteger 然后安全地转换回完全相同的byte ,任何线索?

我认为完全转换为BigInteger []在我的情况下是最佳的。 有没有人用Java编写或发现这个并愿意分享? 所以想象我有任意大小byte[] = {0xff,0x3e,0x12,0x45,0x1d,0x11,0x2a,0x80,0x81,0x45,0x1d,0x11,0x2a,0x80,0x81}如何将其转换为BigInteger的数组然后能够安全地恢复它原来的字节数组? ty提前。

算法的复杂性

我正在学习考试,看到了这个问题,所以我做了以下,是不是正确的? while循环运行在O(log3n)。 for循环运行在大约O((n-(某些数学))* log2n)因为我有一个线性的减号,我说整个方法运行在O(nlogn),除非我错了,它是就像是 O((n-(n / log3n))* log2n)< – 不完全但很完全,无法弄明白。 这里是负线性还是不? 如果不是什么是正确的bigO? public void foo (int n, int m) { int i = m; while (i>100) i = i/3; for (int k=i; k>=0; k–) { for (int j=1; j<n; j*=2) System.out.print(k + "\t" + j); System.out.println(); } }

LinkedList.contains执行速度

为什么Methode LinkedList.contains()比这样的实现运行得快: for (String s : list) if (s.equals(element)) return true; return false; 我没有看到这与实现之间有很大的区别(我认为搜索对象不是空的),同样的迭代器和等于操作

更高效的排序算法?

我正在寻找一种比Arrays.sort()更好的Arrays.sort() 。 我知道这看起来像是一个万次问的愚蠢的问题,但请继续阅读。 让我们有两个实现Comparable的类,它们的自然顺序基于int值。 第一个compareTo方法如下所示: public int compareTo(ComparableInteger o) { return this.value – o.value; } 第二个是: public int compareTo(ComparableInteger o) { if (this.value > o.value) { return 1; } else { if (this.value == o.value) { return 0; } else { return -1; } } } 当我在这些clases的实例列表上调用Collections.sort时,它们的表现大致相同。 我的问题是,是否存在排序算法,这将有益于第一个compareTo方法的附加信息。 在第一个示例中,添加的信息是: 我们有三个ComparableInteger值: a == 1 b == […]

Java中TreeSet方法的计算复杂性

Java中TreeSet方法的计算复杂度是否与AVLTree相同? 具体来说,我想知道以下方法的计算复杂性:1.add 2.remove 3.first 4.last 5. floor 6. higher 用于方法描述的Java Doc: http : //docs.oracle.com/javase/6/docs/api/java/util/TreeSet.html 对于AVL树,有所有O(logn)? 是什么上面的TreeSet方法的复杂性?

插入排序,MergeSort和快速排序的测试用例

我已经实现了(在Java中)Insertion Sort,MergeSort,ModifiedMergeSort和Quick Sort: ModifiedMergeSort具有元素“绑定”的变量。 当要排序的元素小于或等于“bound”时,请使用Insertion Sort对它们进行排序。 为什么版本1比版本3,4和5更好? 版本2和6的结果是否真实? 这是我的结果(以毫秒为单位): Version 1 – Insertion Sort: Run-Times over 50 test runs Input Size Best-Case Worst-Case Average-Case N = 10000 14 19 14.96 N = 20000 59 60 59.3 N = 40000 234 277 243.1 Version 2 – Merge Sort: Run-Times over 50 test runs Input Size Best-Case […]

如何查找子arrays在Java中的2D数组中是否有特定的总和?

我试图通过比较源图像和图案图像中存在的像素的平均颜色来解决图像匹配问题。 我已经将这个问题简化为子数组求和问题,但无法找到解决问题的方法。 假设我有一个带有所有正整数的二维arraysARR。 我有一个数字x(这是小图案图像中存在的像素颜色的平均值)。 我只需要在ARR中找到具有精确和x的任何子arrays。 我发现了一个类似的问题,可以通过动态编程来解决。 http://www.geeksforgeeks.org/dynamic-programming-set-27-max-sum-rectangle-in-a-2d-matrix/ 但是,这谈到了找到一个具有最大总和而不是已经给出的总和的子arrays。 所以,如果这是给定的数组。 3 4 8 9 3 2 10 4 2 1 8 1 4 8 0 3 5 2 12 3 8 1 1 2 2 如果给定的总和是19,那么它应该返回此窗口 3 4 8 9 3 2 10 4 2 1 8 1 4 8 0 3 5 2 12 3 […]

给定一个整数0-9的存量,在我用完一些整数之前,我可以写的最后一个数字是多少?

正如标题所说,给定0-9的整数,在我用完一些整数之前,我能写的最后一个数字是多少? 因此,如果我给了一个库存,比如从0到9的每个数字为10,那么在我用完一些数字之前,我可以写的最后一个数字是多少。 例如,股票为2我可以写数字1 … 10: 1 2 3 4 5 6 7 8 9 10 在这一点上我的股票是0,我不能写11.还要注意,如果给我一个3的股票,我仍然只能写1 … 10,因为11将花费我2个,这将将我的股票留给-1。 到目前为止我得到了什么: public class Numbers { public static int numbers(int stock) { int[] t = new int[10]; for (int k = 1; ; k++) { int x = k; while (x > 0) { if (t[x % 10] […]