Princeton Algorithm Part 1 Week 3 - Brute force / 蛮力

时间给的非常充裕(N^4),而且是穷举的方式 比较简单。 下一个 Fast class 就相对难一些了

Brute Collinear Points:

public class BruteCollinearPoints {
    private LineSegment[] segarr = new LineSegment[1];
    private int           segnum = 0;

    public BruteCollinearPoints(Point[] points) {
        // finds all line segments containing 4 points
        int n = points.length;
        for (int p = 0; p < n; p++) {
            for (int q = p + 1; q < n; q++) {
                for (int r = q + 1; r < n; r++)
                    if (points[p].slopeTo(points[q]) 
                            == points[p].slopeTo(points[r])) {
                        for (int s = r + 1; s < n; s++) {
                            if (points[p].slopeTo(points[q]) 
                                    == points[p].slopeTo(points[s])) {
                                segarrin(new LineSegment
                                        (points[p], points[s])); //??first try
                            }
                        }
                    }
            }
        }
    }

    private void segarrin(LineSegment line) {
        // Debugged;
        if (segarr.length == segnum) {
            LineSegment[] temp = segarr;
            segarr = new LineSegment[(segnum + 1) * 2];
            for (int i = 0; i < segnum; i++) {
                segarr[i] = temp[i];
            }
        }
        segarr[segnum++] = line;
    }

    public int numberOfSegments() {
        return segnum;
    }

    public LineSegment[] segments() {
        return segarr;
    }

    private void printer() {
        for (int i = 0; i < segnum; i++) {
            segarr[i].draw();
            System.out.println(segarr[i].toString());
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,885评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,144评论 19 139
  • 1.洗衣精:是6倍浓缩的,一瓶相当于市售的6瓶,天然植物成份,大人小孩的衣服都可以用,配合那个唧筒使用,很多的衣服...
    香香Angel阅读 10,357评论 0 0
  • 一晃眼,2017年又要结束了。回过头看看自己,虽然成长了不少,但是离自己定下的目标还有很大的一段距离。 2018年...
    小鱼在变好阅读 2,532评论 0 0

友情链接更多精彩内容