LeetCode-67/104/1232/136

news2024/9/24 18:32:46

1.二进制求和(67)

题目描述:

给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。
在这里插入图片描述
思路: 第一种方法就是直接将字符串转为二进制数,然后相加返回结果,但是提交未通过,这也是从官方题解那里学来的方法。第二种方法就是分别从两个字符串的尾部开始遍历,然后将对应的字符相加,如果等于2就将设置的进位变量置为1,这一步相当于进一位,最终等到短的字符串遍历完成,再将剩下的较长的字符串进行遍历,具体实现看代码。

代码:

class Solution {
    public String addBinary(String a, String b) {
    
        //addBinary1(a,b);
        return addBinary2(a,b);
    }
    public String addBinary1(String a, String b) {
        int lenA=a.length();
        int lenB=b.length();

        String strL=a;
        String strS=b;

        StringBuilder tmp=new StringBuilder();

        if(lenA<=lenB) {
            strL=b;
            strS=a;
        }        
        int carry=0;

        int len1=strL.length();
        int len2=strS.length();
        while(len2>0) {
            int plus=strL.charAt(len1-1)-'0'+strS.charAt(len2-1)-'0'+carry;
            
            carry=plus/2;
            tmp.insert(0,plus%2);
            
            len1--;
            len2--;
            
        }

        while(len1>0) {
            int plus=strL.charAt(len1-1)-'0'+carry;
            carry=plus/2;
            tmp.insert(0,plus%2);
            
            len1--;
            
        }

        if(carry!=0) {
            tmp.insert(0,carry);
        }
        return tmp.toString();
    }

    public String addBinary2(String a, String b) {
        return Integer.toBinaryString(
            Integer.parseInt(a, 2) + Integer.parseInt(b, 2)
        );
    }


}

2.二叉树的最大深度(104)

题目描述:

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
在这里插入图片描述
思路: 这题比较基础,就是用递归求出二叉树的最大深度,注意递归结束条件的设置,然后返回左右子树中的深度较大的一边即可。

代码:

class Solution {
    public int maxDepth(TreeNode root) {
        if(root==null) {
            return 0;
        }

        int left=maxDepth(root.left);
        int right=maxDepth(root.right);

        return left>=right? left+1:right+1;
    }
}

3.缀点成线(1232)

题目描述:

给定一个数组 coordinates ,其中 coordinates[i] = [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。
在这里插入图片描述
思路: 这里主要是判断斜率,我另外写了一个函数用于判断三个点是否在一条直线上,然后将每个点遍历一遍并放入该函数即可。另外写的函数主要就是要注意线与x轴垂直的情况。

代码:

class Solution {
    public boolean checkStraightLine(int[][] coordinates) {
            for(int i=0;i<coordinates.length-2;i++) {
                if(!checkThreePoints(coordinates[i][0],coordinates[i+1][0],coordinates[i+2][0],coordinates[i][1],coordinates[i+1][1],coordinates[i+2][1])) {
                    return false;
                }
            }
            return true;
        
        
    }

    public boolean checkThreePoints(double x1,double x2,double x3,double y1,double y2,double y3) {
        if((x1-x2==0)&&(x2-x3==0)) {
            return true;
        } else if((x2-x1==0 || x3-x2==0)) {
            return false; 
        } else {
            return (y2-y1)/(x2-x1)==(y3-y2)/(x3-x2);
        }
    

    }
}

4.只出现一次的数字(136)

题目描述:

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
在这里插入图片描述
思路: 这题很简单,遍历数组然后将每一个元素进行异或,最终值就是只出现一次的数字,返回即可。

代码:

class Solution {
    public int singleNumber(int[] nums) {
        int ret=0;
        for(int i=0;i<nums.length;i++) {
            ret^=nums[i];
        }

        return ret;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1397161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真

一、创建工作空间 mkdir catkin_ws cd catkin_ws mkdir src cd src 二、下载wpr_simulation源码 git clone https://github.com/6-robot/wpr_simulation.git 三、编译 ~/catkin_make 目录下catkin_makesource devel/setup.bash 四、运行 roslaunch wpr_simulation wpb_s…

SPI 动态服务发现机制

SPI&#xff08;Service Provier Interface&#xff09;是一种服务发现机制&#xff0c;通过ClassPath下的META—INF/services文件查找文件&#xff0c;自动加载文件中定义的类&#xff0c;再调用forName加载&#xff1b; spi可以很灵活的让接口和实现分离&#xff0c; 让API提…

Node+Express编写接口---前端

前端页面 vue_node_admin: 第一个以node后端,vue为前端的后台管理项目https://gitee.com/ah-ah-bao/vue_node_admin.git

SpringBoot 项目中后端实现跨域的5种方式!!!

文章目录 SpringBoot 项目中后端实现跨域的5种方式&#xff01;&#xff01;&#xff01;一、为什么会出现跨域问题二、什么是跨域三、非同源限制四、Java后端 实现 CORS 跨域请求的方式1、返回新的 CorsFilter(全局跨域)2、重写 WebMvcConfigurer(全局跨域)3、使用注解 (局部跨…

485.最大连续1的个数

前言 这两天突然发现力扣上还是有我能写出来的题的&#xff0c;虽说都是简单级别的&#xff08;以及一道中等的题&#xff09;&#xff0c;但是能写出来力扣真的太开心了&#xff0c;&#xff08;大佬把我这段话当个玩笑就行了&#xff09;&#xff0c;于是乎&#xff0c;我觉…

【Docker】实战多阶段构建 Laravel 镜像

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 本节适用于 PHP 开发者阅读。Laravel 基于 8.x 版本&#xff0c;各个版本的文件结构可能会有差异&#xff0c;请根据实际自行修改。 准备 新…

【C++】string的基本使用

从这篇博客开始&#xff0c;我们的C部分就进入到了STL&#xff0c;STL的出现可以说是C发展历史上非常关键的一步&#xff0c;自此C和C语言有了较为明显的差别。那么什么是STL呢&#xff1f; 后来不断的演化&#xff0c;发展成了知名的两个版本&#xff0c;一个叫做P.J.版本&am…

【GitHub项目推荐--推荐 5 个炫炫炫的可视化项目】【转载】

数据可视化就是将抽象的数据通过视觉的方式进行展示&#xff0c;能让用户直观的看到数据中蕴含的信息和规律。 本篇文章&#xff0c;整理了 5 个可视化开源项目&#xff0c;其中包括可视化制作低代码平台、大屏可视化、地图可视化、热图、图标可视化等等。 00. 数据大屏可视化…

gh0st远程控制——客户端界面编写(二)

● 补充小知识&#xff1a;枚举类型的使用 每个控件&#xff08;比如列表&#xff09;都对应一个自己的唯一的变量 使用枚举类型可以将变量名与编号进行绑定&#xff0c;以后程序需要扩展的时候&#xff0c;只需要在定义枚举变量的位置重新修改编号就可以了&#xff0c;这样全…

Windows自带分屏使用-窗口贴靠

0.介绍 Windows电脑自带的分屏功能叫做“窗口贴靠”&#xff0c;可以让您同时查看和操作多个应用程序窗口&#xff0c;提高我们的工作效率在屏幕展示上,没有额外显示器的情况下,可以设置分屏来进行展示分屏的数量,目前为止,windows系统上分屏的数量最多为4个,win7,win10,win11…

DolphinDB 与盈米基金达成战略合作,打造领先的资管机构投顾解决方案

1月16日上午&#xff0c;DolphinDB 与盈米基金在上海签署战略合作协议&#xff0c;共同开启专业资管投顾投研合作新篇章。 DolphinDB 联合创始人、COO 初阳春与盈米基金副总裁、研究院院长杨媛春出席仪式&#xff0c;并代表双方完成签约。 打造市场领先的资管机构投顾服务 盈…

OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换

前言 在现代工业自动化领域&#xff0c;OPC UA&#xff08;开放性生产控制和统一架构&#xff09;是一种广泛应用的通信协议。本文将以通俗易懂的方式解释OPC UA的含义和作用&#xff0c;帮助读者更好地理解这一概念。 一、OPC UA的定义 OPC UA全称为“开放性生产控制和统一…

【学习计划】裁员风波下的一点感悟

今天计划一点点~~ 裁员风波 年关将近&#xff0c;同公司不同中心的小伙伴被约谈了。其实是在 23 年的 11 月份就已经在谈了&#xff0c;但是因为当时她还没找到下家&#xff0c;并且觉得赔偿也没谈好&#xff0c;就一直往后延期了&#xff0c;最后决定今年的 4 月份合同到期再…

【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义&#xff0c;汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题&#xff0c;也面临着新的挑战&#xff1a;软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…

力扣211. 添加与搜索单词 - 数据结构设计

字典树 思路&#xff1a; 设计一棵字典树&#xff0c;每个节点存放单词的一个字符&#xff0c;节点放一个标记位&#xff0c;如果是单词结束则标记&#xff1b;字典树插入&#xff1a; 字典树默认有 26 个 slot 槽代表 a - z&#xff1b;遍历单词&#xff0c;如果字符对应槽存…

Spring Boot Aop 执行顺序

Spring Boot Aop 执行顺序 1. 概述 在 spring boot 项目中&#xff0c;使用 aop 增强&#xff0c;不仅可以很优雅地扩展功能&#xff0c;还可以让一写多用&#xff0c;避免写重复代码&#xff0c;例如&#xff1a;记录接口耗时&#xff0c;记录接口日志&#xff0c;接口权限&…

主动自动智能、全天在线值守!浪潮信息InService托维服务平台V2.0焕新升级

日前&#xff0c;浪潮信息发布了InService托维服务平台2.0版本&#xff0c;新增了自动化微码版本推荐、硬盘故障智能预测、服务报告自助订阅等功能模块。该平台对接入设备可7*24小时在线监测&#xff0c;量化评估设备状态&#xff0c;提前预警故障&#xff0c;实现主动式服务。…

手写Vue3源码

Vue3核心源码 B站视频地址&#xff1a;https://www.bilibili.com/video/BV1nW4y147Pd?p2&vd_source36bacfbaa95ea7a433650dab3f7fa0ae Monorepo介绍 Monorepo 是管理项目代码的一种方式&#xff0c;只在一个仓库中管理多个模块/包 一个仓库可以维护多个模块&#xff0c;…

书生·浦语大模型实战营第四次课堂笔记

先来看看参考作业 哈哈到这才想起来写笔记 倒回去看发现要求将不要葱姜蒜换成自己的名字和昵称&#xff01; 好好好我就是不配玩&#xff08;换成管理员也不行&#xff01;&#xff09; 诶怎么能进这个环境&#xff1f;要进双系统ubuntu&#xff1f; 现在看视频发现原来是…

Vcruntime140_1.dll丢失的错误提示怎么解决,关于Vcruntime140_1.dll文件

在使用电脑时你是否遇到过关于Vcruntime140_1.dll文件丢失的错误提示&#xff0c;出现这样的提示时是不是不知所措&#xff0c;今天就给大家讲解Vcruntime140_1.dll文件的一些相关介绍&#xff0c;希望能够帮助大家解决Vcruntime140_1.dll丢失的难题。 一.Vcruntime140_1.dll文…