小编hei*_*man的帖子

如何将24个音乐专辑分成6个播放列表,以使运行时间/长度尽可能均匀分布?

注意:我计划使用Java实现这一点,但欢迎并赞赏逻辑中所需步骤的任何简单英语解释.

我试图想出一种方法将一组24个音乐专辑/记录分成6个播放列表,这样所有6个播放列表的长度/运行时间尽可能彼此接近.

我最初认为也许我可以找到问题的所有可能的排列,然后找出一个逻辑来分析哪个是最好的除法.我昨天创建了一个线程来寻求帮助(我有24个项目需要分成6组4.我可以使用什么算法来查找所有可能的组合?).然而,当我接近寻找解决方案时,我意识到只是找到问题的所有排列将花费极长的时间来运行,因此这种方法似乎不切实际.

所以我想知道,有没有更快的方法来解决这个问题?

鉴于这些是相关专辑的运行时间(以MM:SS格式),我找到将专辑分成4个播放列表的4种方式,使得每个播放列表的长度尽可能接近彼此尽可能?

39:03 
41:08 
41:39 
42:54 
44:31 
44:34 
44:40 
45:55 
45:59 
47:06 
47:20 
47:53 
49:35 
49:57 
50:15 
51:35 
51:50 
55:45
58:10 
58:11 
59:48 
59:58   
60:00 
61:08 
Run Code Online (Sandbox Code Playgroud)

我做了数学考虑并考虑了所有专辑的总时间,有6个播放列表在200分49秒运行将是完美的...但由于个别专辑长度可能不允许精确的分区,什么将是最准确的分工是我的问题.

注意:我实际上可以手动执行此操作并获得足够接近的足够近似值,但我仍然对如何通过程序完成它感兴趣.

谢谢!

language-agnostic algorithm

20
推荐指数
3
解决办法
630
查看次数

重用Statement和Resultset是否会释放先前使用的资源?或者我必须在重用之前明确关闭它们?

示例代码:

        aStmt = aConn.prepareStatement(aQuery);
        aRset = aStmt.executeQuery(cQuery);

        while (cRset.next()) {
            //stuff to determine value of parm1

            aStmt.setString(1, parm1);                
            aRset = aStmt.executeQuery(); 

            //more stuff
        }
Run Code Online (Sandbox Code Playgroud)

在while语句中的每个循环之后,我是否必须关闭aStmt和aRset?或者将在后续循环中重用它们释放从先前循环中使用的内存/资源?

java jdbc resultset

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

仅使用Jsoup从子节点中选择?

我目前正在处理一个<ul>包含许多第一级<li>元素的元素.我想得到那些元素,只有那些元素.但是,当我使用Jsoup选择器或getElementsByTag获取它们时,它还会返回<li>这些第一级<li>元素中的元素.

我该怎么做才能获得第一级<li>元素?

这是代码:

Elements bundleList =  indieGala.select("section.games_bundle_box2")
                        .get(0).select("ul.unlock")
                        .get(0).getElementsByTag("li");
Run Code Online (Sandbox Code Playgroud)

这是html:

<section class="games_bundle_box2">
  <div class="games-container">

    <!-- List Game Unlocked -->
    <ul class="unlock">

      <!-- Item -->
      <li>
        <!-- Preview Thumb -->
        <a href="#game1" class="fancybox-various" title="Desura &amp; Steam for Windows and Mac - This game has been GreenLighted on Steam and all buyers of The IndieGala Flashpoint bundle will receive Steam keys in a few weeks!">
          <span class="tier1">
            Pay minimum 
            <em class="color-text">
              $1 …
Run Code Online (Sandbox Code Playgroud)

html java dom screen-scraping jsoup

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

无法在Java/Apache HttpClient中使用垂直/管道栏处理URL

如果我想要处理此网址,例如:

post = new HttpPost("http://testurl.com/lists/lprocess?action=LoadList|401814|1");
Run Code Online (Sandbox Code Playgroud)

Java/Apache不会让我,因为它说垂直条("|")是非法的.

用双斜线转义它也不起作用:

post = new HttpPost("http://testurl.com/lists/lprocess?action=LoadList\\|401814\\|1");
Run Code Online (Sandbox Code Playgroud)

^不起作用.

有任何建议如何使这项工作?

java apache apache-commons-httpclient apache-httpclient-4.x

11
推荐指数
2
解决办法
8158
查看次数

如何在shell脚本上保留带有echo的前导空格?

我有一个源文件,它是已合并在一起的多个文件的组合.我的脚本应该将它们分成原始的单个文件.

每当我遇到以"FILENM"开头的行时,这意味着它是下一个文件的开头.

文件中的所有细节线都是固定宽度; 所以,我现在遇到的问题是,当不应该截断以前导空格开头的行时会被截断.

如何增强此脚本以保留前导空格?

while read line         
do         
    lineType=`echo $line | cut -c1-6`
    if [ "$lineType" == "FILENM" ]; then
       fileName=`echo $line | cut -c7-`
    else
       echo "$line" >> $filePath/$fileName
    fi   
done <$filePath/sourcefile
Run Code Online (Sandbox Code Playgroud)

unix bash shell scripting

10
推荐指数
2
解决办法
6687
查看次数

String.split()---如何将连续分隔符视为一个?

对于变量temp中的两个示例字符串,例如:

(1) "|RYVG|111|9|"
(2) "|RYVG|111||9|"
Run Code Online (Sandbox Code Playgroud)

我想做以下事情:

String splitRating[] = temp.split("\\|",);
Run Code Online (Sandbox Code Playgroud)

但我希望结果是相同的,这是:

splitrating[0] = ""
splitrating[1] = "RYVG"
splitrating[2] = "111"
splitrating[3] = "9
Run Code Online (Sandbox Code Playgroud)

这意味着我需要对待那双"|" 作为一个分隔符.有没有办法在使用时这样做String.split()

java string split delimiter

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

是否可以在Eclipse中调试已运行的Java程序?

我要问的是,是否可以按顺序执行以下步骤:

  1. 运行为... Java应用程序
  2. 让程序运行直到达到我想要调试的程度
  3. 当程序到达那一点时调试该程序.

我之所以使用"Run as ..."启动程序而不是"Debug as ..."是因为程序在某个时刻挂起(我怀疑是一个无限循环),但我无法一致地复制它.我的意思是我可以让它一直挂起,但它会在随机场合发生.

对于它的价值,我的程序是一个游戏,它挂在游戏的不同点,这就是为什么我不能确定在哪里放置一个断点,所以如果我可以让它先运行然后切换会很好在挂起/循环的位置进行调试.

java eclipse

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

在Java DB2 JDBC中:如何将WHERE子句中的空参数用于SELECT语句,其中值可以为null或不为null?

例如,对于PreparedStatement,我具有以下选择查询:

“从FOBAR酒吧选择FOO =?”

FOOBAR的参数可以有一个值,也可以为null。

以下代码可以工作吗?

if(<condition>) preparedStatement.setString(1, "<string value>");
else preparedStatement.setString(1, null);
Run Code Online (Sandbox Code Playgroud)

如果没有,应该如何处理?

java db2 jdbc prepared-statement

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

为什么在使用Jsoup连接到特定网页时出现404错误?

我正在尝试从Metacritic获取一些视频游戏数据,并且我在此网页上一直收到404错误:

http://www.metacritic.com/game/playstation-2/ico
Run Code Online (Sandbox Code Playgroud)

connect命令非常基本:

Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36").timeout(0).get();
Run Code Online (Sandbox Code Playgroud)

在Metacritic的数百个类似的视频游戏网页中,我尝试过连接,这是唯一每次都返回404的网页.知道为什么吗?

java dom connect http-status-code-404 jsoup

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

有没有一种方法可以在没有外部库的情况下用Java处理DBF文件?

我需要接收 DBF 格式的输入文件(我相信它是通过 Foxpro 制作的)并按顺序读取记录进行处理。

有没有什么方法可以在 Java 中做到这一点而不使用外部库?

谢谢。

(我只是尽可能避免使用外部库,因为我仍然需要获得批准)

java dbf

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