小编Arn*_*tta的帖子

使用动态编程找到子集和的解决方案

我想做的事

我想找到一个与目标相加的数组的子集T.我还想使用动态编程方法(以及自下而上的解决方案)来做到这一点.

我现在有什么

目前我只找到一种方法来查看是否在所有大小的子集中N,是否存在至少一个具有所需总和的子集.见下面的代码.

public boolean solve(int[] numbers, int target) {

    //Safeguard against invalid parameters
    if ((target < 0) || (sum(numbers) < target)){
        return false;
    }

    boolean [][] table = new boolean [target + 1] [numbers.length + 1]  ;

    for (int i = 0; i <= numbers.length; ++i) {
        table[0][i] = true;
    }


    /* Base cases have been covered. 
     * Now look set subsets [1..n][target] to be true or false.
     * n represents the number of …
Run Code Online (Sandbox Code Playgroud)

java algorithm dynamic-programming subset-sum

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

过去两年中特定地点的所有Facebook活动列表

我想做什么

我正在尝试提取2012年和2013年在某个城市发生的所有公开 Facebook事件的列表.此外,对于每个事件,我想提取以下内容:

  • 事件名称
  • 事件描述
  • 日期
  • 地点
  • 参加/可能/拒绝的人数

到目前为止我尝试过的

我一直在图浏览器中尝试以下查询

search?q={Oslo}& [type={event}](#searchtypes)
Run Code Online (Sandbox Code Playgroud)

我现在忽略了日期范围约束.我想我以后可以解决这个问题.

问题

这是列出状态更新(故事),地点和其他所有内容,并将其作为JSON对象返回.但是,这不会提供我所需的所有数据字段.有任何想法吗?

边注

我试过调查FQL,但显然不能做这样的搜索?(如果可以,请随时提供帮助).我得到的最接近的是:

SELECT eid FROM event_member WHERE uid IN 
(SELECT page_id FROM place WHERE  
 distance(latitude, longitude, "37.76", "-122.427") < 1000)
Run Code Online (Sandbox Code Playgroud)

但这只会给我未来的事件.也许如果它允许我过去看过去?

facebook facebook-fql facebook-graph-api

5
推荐指数
1
解决办法
1186
查看次数

Mockito验证使用正则表达式使用正确的参数调用方法

描述

我正在尝试测试以下类:

Class UserSynchronizer(){
   private static org.apache.log4j.Logger log = ... ;

   public Sync(candidate) { 
     ...
     if (candidate.inValidForSync()) {
       log.debug("Candidate #" + candidate.getId() + ": Not syncing");
     }
     else {
       log.debug("Syncing");
     }
   }

 }
Run Code Online (Sandbox Code Playgroud)

我想看看mockito是否可以检测出调用的参数log.debug,然后我想知道我是否可以对它进行某种正则表达式检查.换句话说,我想:

  • 捕获提供给日志对象的参数(我在我的测试atm中嘲笑)
  • 检查(使用正则表达式)是否与我的模拟候选对象返回的情况匹配"候选人#\ d +:不同步"之类的模式

测试代码

以下代码是我的起点:

public void verifySyncDoesntSyncWhenInvalid(){
  //Setup candidate mock
  Candidate invalidSyncCandidateMock = mock(Candidate.class);
  when(invalidSyncCandidateMock.inValidForSync()).thenReturn(true);

  //Setup log mock
  UserSynchronizer userSynchronizer = ...;
  Field logField = userSynchronizer.getClass().getDeclaredField("log");
  logField.setAccessible(true);
  logField.set(userSynchronizer, logMock);

  //Call sync
  userSynchronizer.sync(invalidSyncCandidateMock);

  //Verify that debug was called with ("Candidate #\d+: Not syncing") …
Run Code Online (Sandbox Code Playgroud)

java regex tdd bdd mockito

5
推荐指数
2
解决办法
6207
查看次数

检查对象是否是 Kotlin 中的多种类型之一

我有以下课程:

sealed class A : BaseType
sealed class B : BaseType
sealed class C : BaseType

...
Run Code Online (Sandbox Code Playgroud)

如果我有一个processObject如下所示的方法:

fun processObject(obj: BaseType): Int {
  return when(obj) {
    is A -> 1
    is B -> 1
    else -> 0
  }
}
Run Code Online (Sandbox Code Playgroud)

我注意到我现在在重复自己,所以我可能会将该方法更改为如下所示:

fun processObject(obj: BaseType): Int {
  return when(obj) {
    is A, is B -> 1
    else -> 0
  }
}
Run Code Online (Sandbox Code Playgroud)

然而,当班级数量从 3-4 增加到 40+ 时,(在我看来)这看起来非常难看。我正在考虑按照下面的伪代码做一些事情:

// store all the possible types in a list
val typesThatShouldReturn1 = listOf<BaseType>(
  // …
Run Code Online (Sandbox Code Playgroud)

generics kotlin

5
推荐指数
1
解决办法
1793
查看次数

在 Kotlin 中的 when 子句中组合多个

假设我有以下内容:

fun makeSound(val animal: Animal) = when(animal) {
  is Lion -> animal.roar()
  is TRex -> animal.roar()
  is Cow -> animal.moo()
}
Run Code Online (Sandbox Code Playgroud)

通常我会通过简单地添加一个RoaringAnimal接口并询问is RoaringAnimal. 但是还有另一种方法可以将多个is子句组合成一个吗?

generics kotlin

4
推荐指数
2
解决办法
2834
查看次数

列表在python中以格式化字符串打印

在python中打印带有整数和字符串的格式化字符串,我通常会这样做:

print '%d %d - %s' %(x,y, mystr)
Run Code Online (Sandbox Code Playgroud)

打印出列表有什么相似之处吗?我有:

L= [1,0,0]
name = 'V'
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

v(1,0,0)
Run Code Online (Sandbox Code Playgroud)

是否有类似于列表对象的%d?

python

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

将 UTC 时间转换为纪元

我希望分析与天气数据相关的交通流量。交通数据有一个 UNIX 时间戳(又名纪元),但我在将时间戳(在天气数据中)转换为纪元时遇到了麻烦。问题是我在挪威,天气数据中的 UTC 时间戳与我不在同一时区(GMT+1)。

我最初的做法

我首先尝试将其转换为纪元并将数据视为 GMT+1 时区。然后我通过减去 UTC 和 GMT+1 之间的秒数差异进行补偿。

方法的问题

我首先意识到这种方法非常原始而且不是很优雅(实际上它充其量只是一个丑陋的黑客)。然而,这里最大的问题是 UTC 和 GMT+1 之间的差异不是恒定的(由于夏令时)。

是否有任何可靠的方法可以将 UTC 时间转换为 python 中的 UNIX 时间戳(考虑到我的机器处于 GMT+1)?时间戳采用以下格式:

Y-m-d HH:MM:SS

编辑:尝试过 rmunns 的解决方案:

def convert_UTC_to_epoch(timestamp):
  tz_UTC = pytz.timezone('UTC')
  time_format = "%Y-%m-%d %H:%M:%S"
  naive_timestamp = datetime.datetime.strptime(timestamp, time_format)
  aware_timestamp = tz_UTC.localize(naive_timestamp)
  epoch = aware_timestamp.strftime("%s")
  return (int) (epoch)
Run Code Online (Sandbox Code Playgroud)

不能正常工作,如下所示:

#Current time at time of the edit is 15:55:00 UTC on June 9th 2014.
>>> diff …
Run Code Online (Sandbox Code Playgroud)

python datetime date

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

检查打字稿中至少有一个接口成员为非空

假设我有一个打字稿界面:

\n\n
interface MyInputInterface {\n  a: A | null\n  b: B |\xc2\xa0null\n  aString: string | null\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这就是我目前所拥有的:

\n\n
const hasOneNonNull = (input: MyInputInterface) => \n  input.a !== null || input.b !== null ||\xc2\xa0input.aString !== null\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这看起来很脆弱。每次添加新的接口成员时,我都必须记住更新检查。有没有一种方法可以遍历所有接口成员并检查其中至少一个不为空?

\n\n

像这样的东西会更理想(getAllMembers是伪代码):

\n\n
const hasOneNonNull = (input: MyInputInterface) => \n  input.getAllMembers().find((elem: any) => any !== null) !== null\n
Run Code Online (Sandbox Code Playgroud)\n

typescript

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

在python中使用2个参数进行下标

假设我有一个X类,它有2个属性:i和j.

我希望有 :

x = X((1,2,3),(2,3,4)) #this would set i to (1,2,3) and j to (2,3,4)
Run Code Online (Sandbox Code Playgroud)

我现在希望下标以下列方式工作:

a, b = x[1,2] #a should now be 2 and b should now be 3
Run Code Online (Sandbox Code Playgroud)

目前我正在尝试这个:

    def __getitem__(self, i, j):
        return self.x[i] , self.y[j]
Run Code Online (Sandbox Code Playgroud)

然而,这一直给我一个错误,getitem正好接受3个参数,但给出了2个(当我尝试打印x [1,2]时)

python subscript-operator

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

python文件复制提供更大的文件

我偶然发现了一些不是问题的东西,而是一些令人费解的东西.我正在复制一个xml文件myxml.xml,myxml_copy.xml输出文件的文件大小更大.我不明白为什么会这样.这与文件编码有关吗?

无论如何,我正在使用的代码(虽然它是相当微不足道的):

from xml.dom.minidom import parseString
import sys

def parseXml():
    data = open(in_filename,'r').read()
    return data


try:
    in_filename = sys.argv[1]
    out_filename = sys.argv[2]

    out_file = open(out_filename,'w')
    out_file.write(parseXml())
    out_file.close()
except Exception,e:
    print "usage: python copy.py <in_file> <out_file>"
    print "Error",e
Run Code Online (Sandbox Code Playgroud)

注意:我不是在寻找复制文件的方法.我将在稍后修改原始的xml文件(剪切和粘贴它的不同部分).

python python-2.7

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