变态青蛙跳问题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/David2427/article/details/70666364

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

分析:最后一个台阶是必须上的,而之前的每一个台阶都有两种选择,上或者不上,那么前n-1个台阶就有2的n-1次方中选择,这就是最终的答案,Java中实现2的n-1次方,要用到库函数math.pow(2,n)。加入不允许用库函数,就要用位移运算,而位移运算的效率还要更高。

“<<” 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。
位移运算首先将数字用二进制标示,在进行移位。例如16的二进制表示为10000,左移一位为100000,就是2的5次方。
综上分析,代码如下:

public class Solution {
    public int JumpFloorII(int target) {
        if(target == 0)
        {
            return -1;
        }
        // return math.pow(2,target - 1);
        return 1<<(target-1);
    }
}
展开阅读全文

青蛙跳问题.

07-12

有7个位置和6只青蛙.rnA1 A2 A3 0 B1 B2 B3rnA系列的青蛙可以向右跳.但不能回跳(向左跳)rnB系列的青蛙可以向左跳.也不能回跳.(向右跳)rnrn如果A系列的右边是0,则可以向右跳.如rnA1 A2 0 A3 B1 B2 B3rn同理B系列左边是0,则可以向左跳.如rnA1 A2 A3 B1 0 B2 B3rnrn如果青蛙可以越过某青蛙跳,比如从初始状态通过这种跃跳可以变成以下情况:rnA1 0 A3 A2 B1 B2 B3rnA2越过A3跳到了0的位置...rnrn最终状态为了跳到如下情况rnB1 B2 B3 0 A1 A2 A3rn就是A B系列的青蛙互换.rn嗯.各位达人先不要骂我自己不思考.是能力有限..暂时只能想到如下的思路.rnrn从初始状态遍历.找到有0的位置.正负2内看是否有青蛙.如果有就交换位置.rn然后将交换后的情况放入树里.之后生成下一个状态.rn比如从初始状态开始就有四种情况.rnA1 A2 0 A3 B1 B2 B3rnA1 A2 A3 B1 0 B2 B3rnA1 0 A3 A2 B1 B2 B3rnA1 A2 A3 B2 B1 0 B3rnrn如果遇到进行不下去而又不是最终状态.则终止这个树节点.返回上个节点..rnrn现在的问题是.如何生成下一个状态.返回一个状态很好弄.如何返回n个状态呢?rn还有就是终止某个不能进行下去的节点之后.如何返回上个节点并进行其它的(嗯.这个貌似已经有点想通了..)rnrn麻烦各位达人帮忙提点一下.如果有代码.最好能有说明.谢谢各位了...rn已经写了的一些代码:rnpackage jump;rnrnpublic class JumpTestrnrn public static void main(String[] agrs)rn rn int num[] = JumpTest.initStart();rn rn rn while(!(JumpTest.endToStart(num)))rn rn rn rnrn rn rn //判断是否为最终状态rn public static boolean endToStart(int[] num)rn rn int[] endNum = JumpTest.initEnd();rn boolean result = false;rn for(int i =0;i 论坛

变态问题

03-26

我从新建页面上[img=d://login.bmp][/img]点击上面的确定后到JS后通过方法:window.location="./subjectAction.do"跳到Action中根据:return mapping.findForward(forward);跳到页面message.jsp中代码如下:rn rn rn rn 标题rn rn rn 用户rn rn rn 日期rn rn rn <%rn ArrayList subList = (ArrayList) request.getAttribute("pageList");rn Page nowPage = (Page) request.getAttribute("page");rn //int totalCount = nowPage.getTotalCount();rn //int totalPage = nowPage.getTotalPage();rn String actionDo = (String)request.getAttribute("actionDo");rn System.out.println("页面大小==" + nowPage.getTotalCount() + "===="rn + nowPage.getTotalPage());rn rn Iterator it = subList.iterator();rn SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");rn while (it.hasNext()) rn Subject sub = (Subject) it.next();rn System.outrn .println("编号为="+sub.getId()+"====" + sub.getSubjectName());rn int subjeId = sub.getId();rn String subjeN = sub.getSubjectName();rn System.out.println("subjeN="+subjeN);rn String moduleName = sub.getModule().getModuleName();rn System.out.println("moduleName="+moduleName);rn String userName = sub.getUser().getName();rn System.out.println("userName=="+userName);rn String nowDate = sf.format(sub.getDate());rn System.out.println("nowDate=="+nowDate);rn rn String str = " [" + moduleName+ "]  " + subjeN+ " "+userName+" "+nowDate+"";rn sb.append(str);rn //sb=sb.append(str);rn [color=#FF0000]System.out.println("sb=="+str);[/color]rn //out.println(str);rn %>rn [color=#0000FF]<%=str %>[/color] <%rn rn rn %>rn rn rn rn在红色那打印出来数据是对了。。但是在显示到页面中数据就不对!!没有刚刚新建的数据。问名位老大帮个忙。。急…………在线等。。 论坛

没有更多推荐了,返回首页