当前位置:首页 » 《随便一记》 » 正文

【Java版oj】day09不用加号的加法、走方格的方案数

25 人参与  2023年04月03日 08:49  分类 : 《随便一记》  评论

点击全文阅读


目录

 一、不用加号的加法

(1)原题再现

(2)问题分析

(3)完整代码

 二、走方格的方案数

(1)原题再现

(2)问题分析

(3)完整代码


 一、不用加号的加法

(1)原题再现

面试题 17.01. 不用加号的加法

        设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。

示例:

输入: a = 1, b = 1

输出: 2

(2)问题分析

        这道题要求不能用“+”等算数运算符,所以我们可以想到使用位运算符

符号描述运算规则
&两个位都为1时,结果才为1。

|

两个位都为0时,结果才为0。
^异或两个位相同为0,相异为1。
~取反0变1,1变0。
<<左移各二进位全部左移若干位,高位丢弃,低位补0
>>右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,右移补1。

        本题可以使用&和^运算符,使用&得到两数相加的进位情况,使用^得到两数相加的结果(没有加进位)

(3)完整代码

class Solution {    public int add(int a, int b) {        // write code here    int ans=a^b;//无进位的情况下    int carry=a&b;//需要进位的地方    while(carry!=0) {    carry=carry<<1;    int tmp=ans;    ans=ans^carry;    carry=tmp&carry;    }    return ans;    }}

 二、走方格的方案数

(1)原题再现

走方格的方案数_牛客题霸_牛客网

描述

        请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。

注:沿棋盘格之间的边缘线行走

输入描述:

输入两个正整数n和m,用空格隔开。(1≤n,m≤8)

输出描述:

输出一行结果

示例:

输入:

2 2

输出:

6

(2)问题分析

        这道题很明显是一道动态规划的题。需要额外注意的是n、m表示的是格子数,而我们走的是边,所以n和m都要+1,即2*2的4个格子有3*3的边框。

我们用二维数据记录每一步的状态。

状态:
子状态:从(0,0)到达(1,0),(1,1),(2,1),...(n,m)的路径数
              F(i,j): 从(0,0)到达F(i,j)的路径数

        到达黄色这一状态时可能是从上面走下来,也可能是从左边走过来的。这一点的路径数,就是左边一点的路径数+上边一点的路径数。
状态递推:
              F(i,j) = F(i-1,j) + F(i,j-1)
初始化: 因为只能向左或者向下,所以当只有一行时,只能向左,走法也只有一种;同理,当只有一列时,只能向下,走法也只有一种。
              特殊情况:第0行和第0列
              F(0,i) = 1
              F(i,0) = 1

返回结果:右下角
              F(n,m)

(3)完整代码

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int m=sc.nextInt();int [][]maxNum=new int[n+1][m+1];for(int i=0;i<=m;i++) {maxNum[0][i]=1;}for(int i=0;i<=n;i++) {maxNum[i][0]=1;}for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {maxNum[i][j]=maxNum[i-1][j]+maxNum[i][j-1];}}System.out.println(maxNum[n][m]);}}



点击全文阅读


本文链接:http://zhangshiyu.com/post/58120.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • (此去经年无故人)南初陆南城:结局+番外精品选集起点章节+阅读即将发布预订
  • 沈凝夏叶晚怡附加完整在线阅读(归雁不栖故人枝)最近更新列表
  • 剧情人物是时初,白浩雄的玄幻言情小说《召诸神,踏万界,天命帝女逆乾坤》,由网络作家&ldquo;海鸥&rdquo;所著,情节扣人心弦,本站TXT全本,欢迎阅读!本书共计381345字,185章节,:结局+番外免费品鉴:结局+番外评价五颗星
  • 凤青禾,江明远,***枢小说(别人修仙我捡漏,卷王们破防了)最近更新(凤青禾,江明远,***枢)整本无套路阅读
  • 薛梨小说无删减+后续(曾经亲情似草芥)畅享阅读
  • 沈南栀小说(穿越时空,我要修补时空裂缝)章节目录+起点章节(沈南栀)全篇清爽版在线
  • 未婚妻被巨蟒缠身,我该吃就吃该喝就喝前言+后续_阿豪林月周然后续+番外_小说后续在线阅读_无删减免费完结_
  • 陆骁,陆本初小说(陆骁,陆本初)(癫!睁眼穿成老太太挥鞭***逆子)前传+阅读全新作品预订
  • 姐姐含冤而死后冥王另娶,我杀穿整个地府在线阅读_阎罗殿殷红别提一口气完结_小说后续在线阅读_无删减免费完结_
  • (书荒必看)毒后重生:疯王的神医小娇妻沈清歌,萧绝:+后续热血十足
  • 重生后我和太监联手灭了敌国喻辰,林雪续集(重生后我和太监联手灭了敌国)终极反转(喻辰,林雪)全篇一口气阅读
  • 我不做灵媒后,自称灵媒摆渡人的养妹害怕了内容精选_苏晓霍老阿姐无广告_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1