首页 > 其他分享 >9/12力扣刷题笔记

9/12力扣刷题笔记

时间:2024-09-12 13:37:26浏览次数:1  
标签:12 help int else 力扣 -- ans string 刷题

 动态规划法,时间和空间复杂度均为O(n)

此方法超出时间限制。

 用滚动数组思想,把空间复杂度优化成O(1)

 70. 爬楼梯 - 力扣(LeetCode)

官方题解的方法2,3没看。

 

class Solution {
public:
    string addBinary(string a, string b) {
        int len_a = a.length();
        int len_b = b.length();
        string ans;
        int help = 0;
        int i, j, k;
        for(i = len_a - 1, j = len_b - 1; i >= 0 && j >= 0; i--, j--){
            k = (a[i] -'0') + (b[j] - '0') + help;
            if(k == 3){
                ans += '1';
                help = 1;
            }else if(k == 2){
                ans += '0';
                help = 1;
            }else if(k == 1){
                ans += '1';
                help = 0;
            }else{//0
                ans += '0';
                help = 0; 
            }
        }
        while(i >= 0 || j >= 0){
            if(i >= 0){
                k = (a[i] - '0') + help;
            }
            else{
                k = (b[j] - '0') + help;
            }
            if(k == 2){
                ans += '0';
                help = 1;
            }else if(k == 1){
                ans += '1';
                help = 0;
            }else{
                if(i >= 0){
                    ans += a[i];
                }else if(j >= 0){
                    ans += b[j];
                }
            }
            i--, j--;
        }
        if(help == 1){
            ans += '1';
        }
        string ture_ans;
        for(int i = ans.length()-1; i >= 0; i--){
            ture_ans += ans[i];
        }
        return ture_ans;

    }
};

这题要注意的是:(int)ans[i] = (int)('1')的结果是49,字符1的ASCII码值。要想取这个字符1转换为数字1,应该写成('1' - '0').

标签:12,help,int,else,力扣,--,ans,string,刷题
From: https://www.cnblogs.com/spp20/p/18409996

相关文章

  • Vmware12 CentOS7 mini Config
    一、网络配置输入:ipaddr,显示网络并未连接查看“虚拟机->设置->网络适配器”选择连接模式为“NAT模式”终端打开"/etc/sysconfig/network-script/ifcfg-eno16777736"修改ONBOOT=yes输入"servicenetworkrestart"重启网络服务,再次检查ip,以及ping二、VMwaretoolinsta......
  • SolidJS-每日小知识(9/12)
    知识介绍对SVG元素实现拖拽视图的功能代码分析对于SVG元素的viewBox属性(x,y,w,h),我们设置x,y作为信号量const[boxLocation,setboxLocation]=createSignal({x:0,y:0});添加拖拽所需的变量和事件letisDragging=false;letstartX:number;letst......
  • 洛谷题单指南-分治与倍增-P1226 【模板】快速幂
    原题链接:https://www.luogu.com.cn/problem/P1226题意解读:快速幂模版题。解题思路:1、分治法要计算a^b,可以对b分情况讨论:如果b是偶数,即b=2t,a^b=a^t*a^t如果b是奇数,即b=2t+1,a^b=a*a^t*a^t很容易用递归实现100分代码:#include<bits/stdc++.h>usingnamespa......
  • 24.9.12——小学期开发实记
    今天做了什么:  今天复刻了团队成员之前实现的”选择“功能。继续将已画好的界面添加上这个功能。遇到什么问题:  一开始添加数据信息后,一直报错:index.vue:224:48Uncaught(inpromise)TypeError:Cannotreadpropertiesofundefined(reading'then')atindex.vue:......
  • convnext_xxlarge.clip_laion2b_soup_ft_in12k timm模型库
    Modelcardforconvnext_xxlarge.clip_laion2b_soup_ft_in12kAConvNeXtimageclassificationmodel.CLIPimagetowerweightspretrainedin OpenCLIP onLAIONandfine-tunedonImageNet-12kbyRossWightman.PleaseseerelatedOpenCLIPmodelcardsformored......
  • LeetCode Hot100刷题记录-142. 环形链表 II
    给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是......
  • 滚雪球学MyBatis(12):常见问题与解决方案
    前言欢迎回到我们的MyBatis系列教程。在前几期中,我们已经进行了MyBatis的基础使用、进阶功能及项目实战的详细讲解。通过这些内容,相信大家对MyBatis有了全面的了解,并能够在实际项目中应用MyBatis。然而,在使用MyBatis的过程中,我们可能会遇到各种问题。本期内容中,我们将总结......
  • P3312 [SDOI2014] 数表
    [SDOI2014]数表题目描述有一张\(n\timesm\)的数表,其第\(i\)行第\(j\)列(\(1\lei\len\),\(1\lej\lem\))的数值为能同时整除\(i\)和\(j\)的所有自然数之和。给定\(a\),计算数表中不大于\(a\)的数之和。输入格式输入包含多组数据。输入的第一行一个整数\(Q\)表......
  • leetcode刷题day13|二叉树Part01(递归遍历、迭代遍历、统一迭代、层序遍历)
    递归遍历思路:使用递归的方式比较简单。1、递归函数的传参:因为最后输出一个数组,所以需要传入根节点和一个容器,本来想写数组,但发现长度不能确定,所以选择list。2、终止条件:当访问的节点为空时,return3、递归函数的逻辑:先访问一个节点,递归访问其他节点144.二叉树的前序遍历......
  • leetcode刷题day14|二叉树Part02(以递归方法为主:226.翻转二叉树、101. 对称二叉树、104
    226.翻转二叉树思路:利用先序遍历递归翻转1、终止条件:节点为空,return2、参数:root3、递归函数逻辑:处理中间节点,交换;递归左孩子,递归右孩子代码如下:classSolution{publicTreeNodeinvertTree(TreeNoderoot){if(root==null)returnroot;swapC......