为此,我一直在摸不着头几个小时......
问题:
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) 我过去只使用 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代码并编译它.(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) 我正在创建注册页面,我已经完成了基本的客户端(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)的页面.我对会话的理解是在多个页面中使用,主要用于登录用户数据.
如果您需要更多说明,请告诉我.
我开发了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) 我浏览了很多帖子,仍然无法让这个工作......
我的目标是仅设置css样式(没有javascript),以便DIV类"two"的高度始终适合DIV类"容器".
容器DIV的高度可能会像窗口调整大小一样改变,这就是为什么我希望我的"两个"DIV能够相应地改变大小.所以我在这里将容器DIV高度设置为300px,但它可以是任何px,如500px等
如果您需要更多说明,请告诉我.提前致谢!
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) 学习 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) 我写了一个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) 首先,这是很长的帖子,所以如果你需要澄清,请告诉我.
我是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) 我有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__c为standard controller.
是否有可能以某种方式将我的CompetitorSearch.page链接添加到Talent页面?
我正在使用Firefox 10,Windows 7并且不确定旧版本,但是当我点击按钮时,按钮周围会出现蓝色边框.
我创建了以下示例.
我用下面的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)
这是我正在谈论的邪恶的蓝色边界.
