小编Ste*_*eve的帖子

练习图论算法的有效方法

我刚刚阅读了算法入门书中的广度优先搜索算法,并在纸上模拟了算法.我现在想做的是在代码中实现它以进行额外的练习.

我正在考虑从头开始实现所有数据结构(邻接列表,"颜色","距离"和"父"数组),但后来我记得当前有图形库,如Boost图库和一些Python中的其他图形API.我也尝试在UVASphere Judge Online上寻找一些与BFS相关的问题,但我不知道哪个问题需要BFS解决方案.

我的问题是什么是最无痛的方法来练习这些图形算法(不仅限于BFS,但在我想实现DFS,Dijkstra,Floyd-Warshall等时也会有用).欢迎有实践问题的网站.

algorithm graph-theory graph

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

给定一个结构中成员a的指针,编写一个返回指向结构的指针的例程

这是我在一些论坛上看到的面试问题.我一直试图弄清楚它是如何工作的,但我不太明白.有人可以解释它是如何工作的吗?

问:给定一个结构中成员a的指针,编写一个返回指向结构的指针的例程.

struct s 
{
   ...
   int a;
   …
};

struct s *get_s_ptr(int *a_ptr)
{
   // implement this.
}
Run Code Online (Sandbox Code Playgroud)

答案是:

struct s* get_s_ptr(int *a_ptr)
{
   return (struct s*)((char*)a_ptr - (int)&((struct s*)0)->a);
}
Run Code Online (Sandbox Code Playgroud)

c struct

9
推荐指数
2
解决办法
4283
查看次数

Spark:分解结构的数据帧数组并附加id

我目前有一个带有id和列的数据帧,这是一个结构数组:

 root
 |-- id: integer (nullable = true)
 |-- lists: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- text: string (nullable = true)
 |    |    |-- amount: double (nullable = true)
Run Code Online (Sandbox Code Playgroud)

这是一个包含数据的示例表:

 id | lists
 -----------
 1  | [[a, 1.0], [b, 2.0]]
 2  | [[c, 3.0]]
Run Code Online (Sandbox Code Playgroud)

如何将上述数据帧转换为下面的数据帧?我需要"爆炸"数组并同时附加id.

 id | col1  | col2
 -----------------
 1  | a     | 1.0
 1  | b     | 2.0
 2  | c     | 3.0
Run Code Online (Sandbox Code Playgroud)

编辑说明:

请注意,以下两个示例之间存在差异.第一个包含"一系列元素结构".而后者只包含 …

scala apache-spark spark-dataframe

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

从您的浏览器访问Web服务

我对Web服务的工作方式比较陌生,所以我已经通过http://blog.saminda.org/2008/07/light-weight-osgi-based-axis2-powered.html 上的教程了解了这个教程. 打印你好的网络服务.

打印出你好的代码就在这里.在这里的同一个项目中,还有另一个将两个数字相加的Web服务.

要访问"hello"Web服务,我只需访问我的浏览器并转到http:// localhost:8080/bridge/services/Version/getVersion.

但是我如何为计算器网络服务做到这一点?什么是网址?或者我是否必须做一些额外的事情才能首先将其注册为服务?

java browser osgi axis2 web-services

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

具有相同域的端口80上的多个Docker容器

我的问题类似于这个问题,但只有一个域.

是否可以在同一台服务器上运行多个docker容器,所有这些容器都在端口80上,但具有不同的URL路径?

例如:

在内部,所有应用程序都托管在同一个docker服务器上.

172.17.0.1:8080 => app1
172.17.0.2:8080 => app2
172.17.0.3:8080 => app3
Run Code Online (Sandbox Code Playgroud)

在外部,用户将使用以下URL访问应用程序:

www.mydomain.com                 (app1)
www.mydomain.com/app/app2        (app2)
www.mydomain.com/app/app3        (app3)
Run Code Online (Sandbox Code Playgroud)

nginx docker digital-ocean

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

具有静态变量的递归函数

我有一个带有静态变量"count"的递归函数.函数递增递增计数,因为它有文件范围,当我第二次调用foo()时,count仍然等于5.是否有一种技术在第二次调用foo()之前将count重置为0?

基本上,我不希望计数有文件范围,但我希望它通过不同的迭代保留其值.

我能想到的一种方法是在foo()中使用一个参数来初始化foo().比如foo(int count).但还有另一种方式吗?

#include <iostream>

using namespace std;

void foo()
{
    static int count = 0;

    if(count<5)
    {
        count++;
        cout<<count<<endl;
        foo();
    }
    else
    {
        cout<<"count > 5"<<endl;
    }
}

int main()
{
    foo();  //increment count from 0 to 5
    foo();  //count is already at 5

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ recursion static

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

Java中的全局访问

在Java中,没有像C++那样的全局访问.那么如果他们想要创建一个可以从任何类访问的对象容器,他们会怎么做?或者说一个拥有全局值的java bean.

例如,如果我正在制作电梯模拟器,那么所有人都需要知道的字段int numElevators必须放在某个地方吗?与电梯的集合对象相同Elevators[] elevators.

我可以想到一种方法是创建一个单例类来存储所有这些全局变量.然后使用静态方法提供来自任何类的访问.但是有更优雅的解决方案吗?

java singleton design-patterns global-variables

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

sed通配符替换

我想基于通配符进行替换.例如,只有当"任期"一词出现在"="符号后面时,才将所有"任期"改为"处置".基本上是一个匹配这个的正则表达式=.*tenure

我这样做的sed命令是:

sed 's/=.*tenure/=.*disposition/g' file.txt
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其传递给包含以下内容的文件:

blah blah blah = change "tenure" to "disposition"
Run Code Online (Sandbox Code Playgroud)

我明白了

blah blah blah =.*disposition" to "disposition"
Run Code Online (Sandbox Code Playgroud)

代替:

blah blah blah = change "disposition" to "disposition"
Run Code Online (Sandbox Code Playgroud)

如何进行替换,使正则表达式中的通配符不会成为目标文件的一部分?

regex grep sed wildcard string-substitution

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

h:inputText 更改为科学记数法

我有一个 h:inputText 控件,我可以在其中输入最多 7 位的数字,它会将它们转换为十进制表示(即输入“9999999”,它将呈现“9999999.0”)。但是,当我输入任何 7 位或更多数字时,它会将其转换为科学记数法(即输入“10000000”并将其呈现为“1.0E7”)。

作为业务需求,我必须以十进制表示法而不是科学记数法来显示它。有没有人有办法做到这一点?

<h:inputText id="tableQuantityId" 
        value="#{fee.tableQuantity}" 
        disabled="#{!fee.selected}" 
        rendered="#{editable}" 
        validator="#{facesValidator.validateQuantity}">
    <a4j:support event="onchange" reRender="messages, feePart" ajaxSingle="true"/>
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

编辑:经过一些进一步的调查,它似乎是从“double”类型中获取当前格式的。(换句话说,您可以将“10000000”分配给双精度数并打印它,它会以科学计数法显示给您)。

所以我进入了我的 getTableQuantity() 方法并将其更改为:

(双版)

public double getTableQuantity() {
    return tableQuantity;
}
Run Code Online (Sandbox Code Playgroud)

(到字符串表示):

public String getTableQuantityFormatted() {

    double d = tableQuantity;
    NumberFormat formatter = new DecimalFormat("###.#####");

    String f = formatter.format(d);
    return f;
}
Run Code Online (Sandbox Code Playgroud)

我在我的 xhtml 中将 "value="#{fee.tableQuantity}" 更改为 value="#{fee.tableQuantityFormatted}"

但是现在我在 xhtml 页面上收到以下错误:

数量值 10000000 不正确。/page/feeContent.xhtml @70,58 value="#{fee.tableQuantityFormatted}":属性 'tableQuantityFormatted' 在 java.lang.String 类型上不可写

formatting jsf textbox scientific-notation

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

JSF:/ webapp子目录中的网页超链接

我有一个.xhtml页面列表,我保存在/ src/main/webapp/pages /文件夹中.现在我想创建它们的超链接.目前唯一有效的是默认主页:/src/main/webapp/pages/default.xhtml.

  <!-- Welcome page -->
  <welcome-file-list>
    <welcome-file>/pages/default.xhtml</welcome-file>
  </welcome-file-list>

  <!-- JSF mapping -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- Map these files with JSF -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

对于其他人,如果我有一个链接,如:

<a href="/pages/page1.xhtml">Page 1</a>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

在ExternalContext中找不到/page1.xhtml作为资源

我的问题是:如何在相对于webapp根目录的href中指定我想要的页面.

directory jsf web-applications hyperlink

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