小编gro*_*taj的帖子

如何快速找到最佳炸弹落差区?

我得到了一个类似这样的功课:

您将获得一个由四种颜色的像素组成的图像.颜色对应于地形,敌人,盟友和墙壁.可以在任何坐标(一对整数)处放下炸弹.你也得到了:

  • r - 炸弹的效果半径(以像素为单位,正整数)
  • e - 杀死敌人的点数
  • a - 杀死盟友的点数

(例如r = 10,e = 1,a = -2)

当炸弹落下时,半径(欧几里德距离)内的所有敌人和盟友都会被杀死,除非他们和炸弹之间有一堵墙(即连接士兵和炸弹的非抗锯齿线穿过墙壁).当炸弹落在墙上时,这个特定像素就像普通地形一样.墙的其余部分仍然是墙.

你的得分是0开始.找到你应该丢弃一颗炸弹以获得最佳分数的坐标.如果有多个最佳解决方案,请返回其中任何一个.

这是一个示例图像裁剪,调整大小并改变颜色以提高可读性:

示例四色图像

我可以在这里找到原始图像.

我已经解决了什么

我知道强行解决这个问题是一个可怕的解决方案.我想出了如何在没有墙壁的情况下快速解决问题.这是一些伪代码:

args Map, R, A, E

for (every Soldier)
    create a Heightmap with dimensions of Map
    zero-fill the Heightmap
    on the Heightmap draw a filled circle of value 1 around Soldier with radius R

    if (Soldier is Ally)
        multiply Heightmap by A
    else
        multiply Heightmap by E

add all …
Run Code Online (Sandbox Code Playgroud)

language-agnostic algorithm

11
推荐指数
1
解决办法
923
查看次数

为什么Serializable接口不包含任何方法?

我知道什么是序列化以及为什么使用它,但我的问题是:

  1. 为什么序列化是标记接口?
  2. 在Serializable接口中没有的潜在好处是什么writeObject,readObject因为当我们进行序列化时,我们最终会覆盖这两种方法?
  3. 如何readResolve确保在反序列化期间创建的对象不是新对象.我知道下面的内容,它在反序列化过程中返回相同的对象,但是谁会在readResolve内部调用此方法?

    private Object readResolve() throws java.io.ObjectStreamException { 
        return INSTANCE;
    }
    
    Run Code Online (Sandbox Code Playgroud)

java serialization

9
推荐指数
1
解决办法
979
查看次数

update-alternatives中抛出错误

我正在尝试为32位操作系统安装jdk.按照以下步骤,

  1. wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" http://download.oracle.com/otn-pub/java/jdk/6u38-b05/jdk-6u38-linux-i586.bin

  2. chmod u+x jdk-6u34-linux-i586.bin

  3. ./jdk-6u34-linux-i586.bin

  4. mkdir -p /usr/lib/jvm /usr/bin/java /usr/bin/javac /usr/bin/javaws

  5. mv jdk1.6.0_3./ usr/lib中/ JVM /`

  6. update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.6.0_38/bin/java" 1

  7. update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0_38/bin/javac" 1

  8. update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jre1.6.0_38/bin/javaws" 1

但是在运行cmd 6时,我遇到了错误.任何帮助,将不胜感激.

update-alternatives: warning: forcing reinstallation of alternative /usr/lib/jvm/jdk1.6.0_38/bin/java because link group java is broken.
update-alternatives: warning: not replacing /usr/bin/java with a link.
update-alternatives: warning: forcing reinstallation of alternative /usr/lib/jvm/jdk1.6.0_38/bin/javac because link group javac is broken.
update-alternatives: warning: not …
Run Code Online (Sandbox Code Playgroud)

java linux

7
推荐指数
1
解决办法
3万
查看次数

用Elasticsearch索引书籍:哪些页面包含点击数?

我正在使用Elasticsearch为图书编制索引,以使用FTS进行搜索。要求之一是我必须显示包含匹配的页面数。

我最初计划在索引字符串中包含页面分隔符,然后在对突出显示的单词之前的页面分隔符进行搜索和计数时获得高亮显示。再次考虑,我担心性能问题。某些书籍的大小上限为500 KB。计算听起来很长的字符串听起来是个主意。比较匹配单词的偏移量和页面分隔符的偏移量会更好。据我了解,with_positions_offsets导致ES存储这些偏移量,因此理想情况下,我希望它为我完成这项工作。

可以在ES中完成吗?在书的哪一页上找到匹配的替代解决方案是什么?

full-text-search elasticsearch

5
推荐指数
0
解决办法
476
查看次数

使用Angular $ location.path时,无法调用未定义的方法'path'

我试过在SO找到了多个解决方案,但我显然失去了一些东西作为不管什么我尝试,我不能让粒子视图来改变表单提交的(或点击按钮)的基础.

这是代码:

propertyControllers.controller('HomeCtrl', ['$scope', 'SearchData', '$location', 
function($scope, SearchData, $routeParams, $location) {

    SearchData.set('postcode', $scope.postcode);
    SearchData.set('radius', $scope.radius);
    SearchData.set('minBeds', $scope.minBeds);
    SearchData.set('minPrice', $scope.minPrice);

    $scope.submit = function() {
        $location.path('/properties');
    }

}]);
Run Code Online (Sandbox Code Playgroud)

并在home.html部分

<input type="submit" class="topcoat-button--cta" value="Search">
Run Code Online (Sandbox Code Playgroud)

我的路由配置

    var propertyApp = angular.module('propertyApp', [
    'ngResource',
    'ngRoute',
    'propertyControllers'
]);

propertyApp.config(['$routeProvider',
    function($routeProvider) {
        $routeProvider.
        when('/home', {
            templateUrl: 'partials/home.html',
            controller: 'HomeCtrl'
        }).
        when('/properties', {
            templateUrl: 'partials/property-list.html',
            controller: 'PropertyListCtrl'
        }).
        when('/properties/:propertyId', {
            templateUrl: 'partials/property-detail.html',
            controller: 'PropertyDetailCtrl'
        }).
        otherwise({
            redirectTo: 'home'
        });

    }]);
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?文档似乎过于复杂,我发现的所有简单例子都做我正在做的事情......

angularjs angularjs-routing

2
推荐指数
1
解决办法
5871
查看次数

[y代表x.split('_')]和x.split('_')之间的差异

我发现了这个问题,原始代码中的一件事让我感到困惑:

>>> x="Alpha_beta_Gamma"
>>> words = [y for y in x.split('_')]
Run Code Online (Sandbox Code Playgroud)

这样做有什么意义[y for y in x.split('_')]split已经返回一个列表,并且在此列表理解中不会操纵项目.我错过了什么吗?

python string split list

2
推荐指数
1
解决办法
209
查看次数

清洁解决方案"将"ObservableList <Foo>"强制转换为List <IFoo>?

我的应用程序有一个简单的插件API.它打包在一个单独的JAR中,插件开发人员可以使用它.核心应用程序实现API中包含的接口,并将它们暴露给加载的插件ServiceLoader.

考虑以下代码:

public interface ILayer {}

public class Layer implements ILayer {
    public void internalMethod() { /*snip*/ }
}

public interface IPlotter {
    List<ILayer> getLayers();
}

public class Plotter implements IPlotter {
    private ObservableList<Layer> layers = FXCollections.observableArrayList();

    @Override
    public ObservableList<Layer> getLayers() {  // incompatible returned type
        return layers;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的要求是:

  • 在内部,ObservableListLayers是可用
  • API只公开了一个ListILayer小号

不幸的是,铸造ObservableList<Layer>List<ILayer>是违法的.

List<Layer>在API中返回会暴露internalMethod()出来Layer,所以这没有用.

我也可以private ObservableList<ILayer> layers,然后实际存储Layer …

java generics casting javafx interface

2
推荐指数
1
解决办法
373
查看次数