小编mas*_*san的帖子

如何在二叉树中找到给定深度的节点值的总和?

为此,我一直在摸不着头几个小时......

问题:

Binary Tree

   (0)      depth 0
   / \
  10   20   depth 1
 / \   / \
30 40  50 60  depth 2
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个以深度为参数的函数,并返回给定深度的节点值的总和.

例如,如果我通过2,它应该返回180(即30 + 40 + 50 + 60)

我决定使用呼吸优先搜索,当我找到具有所需深度的节点时,总结该值,但我无法弄清楚如何找出哪个节点处于什么深度的方式.但是通过这种方法我觉得完全错误的方向.

function level_order($root, $targetDepth) {
$q = new Queue();
$q->enqueue($root);

while(!$q->isEmpty) {
    //how to determin the depth of the node???
    $node = $q->dequeue();

    if($currentDepth == $targetDepth) {
        $sum = $node->value;
    }

    if($node->left != null) {
        $q->enqueue($node->left);
    }
    if($node->right != null) {
        $q->enqueue($node->right);
    }
    //need to reset this somehow
    $currentDepth …
Run Code Online (Sandbox Code Playgroud)

tree search traversal

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

如何使用 REST JAX-RS 实现在满足特定条件时重定向用户?

我过去只使用 Tomcat 和 JSP 页面来执行查询,然后将查询结果分配到数组或对象中,然后通过响应将该数据传递到客户端。

request.setAttribute("errorMessage", "this is error!!");
request.getRequestDispatcher("report.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)

在客户端 jsp 代码中,我可以执行以下操作:

${错误消息}

然后“这是错误!!” 消息就会出现。

我想对 REST JAX-RS GlassFish v3 做同样的事情。

    @Path("schedule/test")
    @POST
    @Consumes("application/x-www-form-urlencoded")
    @Produces("application/vnd.ms-excel")
    public Object tmpTest(String content) {
        try {

            //just my method to execute query and get result
            Vector out = (Vector)QueryManager.executeQuery;

            //if query result is empty, I want user to redirect to report.jsp page
            if(out.isEmpty()) {
                request.setAttribute("errorMessage", "This is error!!");
                request.getRequestDispatcher("report.jsp").forward(request, response);
                return null;
            }
        ....continue code......
   }
Run Code Online (Sandbox Code Playgroud)

这会导致我从未见过的神秘异常。

java.lang.ClassCastException: $Proxy109 cannot be cast …
Run Code Online (Sandbox Code Playgroud)

java rest redirect jsp jax-rs

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

java - 编译文件时可以选择版本号吗?

我写了一个java代码并编译它.(foo1.6.class)根据我的搜索,我的本地机器有Java 1.6,我上传的tomcat服务器foo1.6.class只接受版本号1.5这意味着我必须要编译Java 1.5?

我相信这是导致坏版本号错误被抛出的原因如下.

我的问题是,有什么方法可以使用1.5版本号编译我的Java文件?看着javac cmd但看起来它不是选项的一部分.但我不认为删除1.6和安装Java 1.5因为这个原因也不是很好的选择.人们如何应对这种情况?

提前致谢!

exception

javax.servlet.ServletException: Bad version number in .class file (unable to load class resume_builder.ResumeBuilder)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:273)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class resume_builder.ResumeBuilder)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1884)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:889)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1353)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    java.lang.Class.getDeclaredConstructors0(Native Method)
    java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
    java.lang.Class.getConstructor0(Class.java:2671)
    java.lang.Class.newInstance0(Class.java:321)
    java.lang.Class.newInstance(Class.java:303)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:142)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Run Code Online (Sandbox Code Playgroud)

java version-control compilation

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

会话是否应该用于处理表单验证的错误消息?

我正在创建注册页面,我已经完成了基本的客户端(JS)表单验证.
现在我要编写服务器端验证.

我所做的是调用request.getParameter():

String username = request.getParameter("username");
Run Code Online (Sandbox Code Playgroud)

然后,如果用户名输入无效,我将错误消息放到ArrayList:

ArrayList<String> errors = new ArrayList<String>();
errors.add("username is not valid");
Run Code Online (Sandbox Code Playgroud)

然后,将ArrayList对象添加到会话变量,

session.setAttribute("inputErrors", errors);
Run Code Online (Sandbox Code Playgroud)

这样我就可以使用逻辑来查看ArrayList是否为空(即存在错误),重定向回注册页面并获取会话值以显示正确的错误消息.

但我想知道以这种方式使用会话是否是处理错误消息的好方法.由于此操作仅涉及2个页面:注册UI(regis.jsp)和处理注册输入验证和处理(例如,process_regis.jsp)的页面.我对会话的理解是在多个页面中使用,主要用于登录用户数据.

如果您需要更多说明,请告诉我.

java error-handling session jsp

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

有没有JPQL分析器?

我开发了JPA Toplink使用JPQL的应用程序.根据我的研究,JPA会调用比JPQL语句更多的SQL.

我正在寻找一些JPQL分析工具,比如我可以执行JPQL或运行我的应用程序,并告诉我运行了多少实际的SQL.

有没有这样的东西?

更新 按照建议在我的persistence.xml中添加了以下内容,我的Netbean IDE现在显示了JPQL生成的实际SQL:D

  <properties>
      <property name="eclipselink.logging.logger" value="JavaLogger"/>
      <property name="toplink.logging.level.sql" value="FINE"/>
Run Code Online (Sandbox Code Playgroud)

java sql jpa analyzer jpql

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

如何使div内容适合高度为100%的父div?

我浏览了很多帖子,仍然无法让这个工作......

我的目标是仅设置css样式(没有javascript),以便DIV类"two"的高度始终适合DIV类"容器".

容器DIV的高度可能会像窗口调整大小一样改变,这就是为什么我希望我的"两个"DIV能够相应地改变大小.所以我在这里将容器DIV高度设置为300px,但它可以是任何px,如500px等

如果您需要更多说明,请告诉我.提前致谢!

http://jsfiddle.net/pn9Qa/

HTML

<div class='container'>
    <div class='top'>some text</div>
    <div class='bottom'>
        <div class='one'>header</div>
        <div class='two'>items here</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.container
{
    height: 300px;
    width: 100%;
    border: 3px solid red;
}
.top
{
    height: 60px;
    width: 100%;
    background-color:pink;
    float:left;

}
.bottom
{
    width: 100%;
    height: 100%;
    background-color: green;
    float: left;
}
.one
{
    width: 100%;
    height: 30px;
    background-color: orange;
}
.two
{
    width: 100%;
    height: 100%;
    background-color: yellow;
    overflow: auto;
}
Run Code Online (Sandbox Code Playgroud)

html css

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

Kusto 查询 - 如何获取当月的开始日期时间

学习 Kusto 查询并寻找一种获取当月日期时间开始的方法。截至我发布此内容时,时间为 2020 年 2 月 25 日,因此输出应如下所示,代表 2020 年 2 月 1 日

在此输入图像描述

这是我到目前为止所拥有的并且有效的方法,但是应该有更好的方法来做到这一点。谁能告诉我这个查询是否可以改进?获取当月月初的常见做法是什么?

下面,获取年份和月份,如果需要月份,则添加前导 0,然后连接字符串并分配给变量“d”,该变量看起来像“2020-02-01”,并将该字符串传递给 todatetime()

let year = datetime_part("Year",now());
let month = datetime_part("Month",now());
let m = case(month < 10, strcat("0", month), tostring(month));
let d = strcat(year, "-", m, "-01" );
print todatetime(d);
Run Code Online (Sandbox Code Playgroud)

kql azure-data-explorer

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

如何将quicksort更改为按降序输出元素?

我写了一个quicksort算法但是,我想在某个地方进行更改,以便这个quicksort按降序输出元素.

我搜索并发现我可以将partition()中的比较运算符(<)更改为其他方式(如下所示).

 //This is snippet from partition() function    
        while($array[$l] < $pivot) { $l++; }
        while($array[$r] > $pivot) { $r--; }
Run Code Online (Sandbox Code Playgroud)

但它不起作用..

如果我快速排序下面的数组,$ array =(3,9,5,7);

应该:

$ array =(9,7,5,3)

但实际输出是:

$ array =(3,5,7,9)

下面是我的快速排序,试图按降序输出元素.我应该如何进行更改才能按降序排序?如果您需要任何澄清,请告诉我.谢谢!

$array = array(3,9,5,7);
$app = new QuicksortDescending();
$app->quicksortDesc($array, 0, count($array));
print_r($array);


class QuicksortDescending {

public function partitionDesc(&$array, $left, $right) {
        $l = $left;
        $r = $right;
        $pivot = $array[($right+$left)/2];

        while($l <= $r) {
            while($array[$l] > $pivot) { $l++; }
            while($array[$r] < $pivot) { $r--; }
            if($l <= …
Run Code Online (Sandbox Code Playgroud)

php quicksort

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

如何处理int和Integer之间的数组元素

首先,这是很长的帖子,所以如果你需要澄清,请告诉我.

我是Java的新手,难以决定是否应该使用int []或Integer [].我写了一个函数,从int []数组中找到odd_number.

public int[] find_odd(int[] arr) {
        int[] result = new int[arr.length];
        for(int i=0; i<arr.length; i++) {
            if(arr[i] % 2 != 0) {
                //System.out.println(arr[i]);
                result[i] = arr[i];
            }
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

然后,当我传递包含一些整数的int []数组时,如下所示:

int[] myArray = {-1, 0, 1, 2, 3};
int[] result = find_odd(myArray);
Run Code Online (Sandbox Code Playgroud)

数组"结果"包含:

0,-1,0,1,0,3

因为在Java中你必须首先定义数组的大小,而empty int []数组元素是0而不是null.因此,当我想测试find_odd()函数并期望数组只有奇数(它所做的)时,它会抛出错误,因为该数组还包含0表示"空单元",如上所示.

我的测试代码:

public void testFindOddPassValidIntArray() {
        int[] arr = {-2, -1, 0, 1, 3};
        int[] result = findOddObj.find_odd(arr);

        //check if return array only contain odd number
        for(int …
Run Code Online (Sandbox Code Playgroud)

java arrays

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

如何添加按钮或链接到标准控制器与应用标签不同的visualforce页面?

我有visualforce页面CompetitorSearch.page使用CompSearchDummy__c标准控制器.

<apex:page StandardController="CompSearchDummy__c" extensions="CompetitorSearch">
Run Code Online (Sandbox Code Playgroud)

如果我要在页面上添加自定义按钮CompSearchDummy,则CompetitorSearch.page显示页面目标.

但我有Talent使用的页面,Talent__c sObject当我尝试添加自定义按钮并尝试设置目的地时,CompetitorSearch.page不会显示为选项,因为我没有设置Talent__cstandard controller.

是否有可能以某种方式将我的CompetitorSearch.page链接添加到Talent页面?

salesforce visualforce apex-code

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

如何删除Firefox中按钮周围的蓝色边框?

我正在使用Firefox 10,Windows 7并且不确定旧版本,但是当我点击按钮时,按钮周围会出现蓝色边框.

我创建了以下示例.

http://jsfiddle.net/dEvKb/58/

我用下面的css删除了虚线,但我也不想要蓝色边框.我无法想象如何删除它或甚至可以删除?

button::-moz-focus-inner,
input[type="button"]::-moz-focus-inner
{
    border: none;
    outline: none;
}
Run Code Online (Sandbox Code Playgroud)

下面不起作用......

input[type="button"]:visited
{
    outline: none;
    border: none;
}
Run Code Online (Sandbox Code Playgroud)

这是我正在谈论的邪恶的蓝色边界.

在此输入图像描述

css firefox styles border button

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