算法通关村番外篇-面试150题二


大家好我是苏麟 , 今天开始LeetCode面试经典150题 .


大纲

    • 1. 两数之和
    • 167. 两数之和 II - 输入有序数组
    • 15. 三数之和

1. 两数之和

描述 :

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

题目 :

LeetCode 两数之和

在这里插入图片描述
分析 :

暴力解法 , 哈希解法 . 没什么说的 .

代码 :

class Solution {public int[] twoSum(int[] nums, int target) {for(int i= 0;i<nums.length ; i++){for(int j = i + 1;j<nums.length ; j++){if(nums[i] + nums[j] == target){return new int[]{i , j};}}}return new int[]{};}
}

167. 两数之和 II - 输入有序数组

描述 :

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。

你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

你所设计的解决方案必须只使用常量级的额外空间。

题目 :

LeetCode 两数之和 II - 输入有序数组
在这里插入图片描述
分析 :

双指针 , 二分查找法 .

代码 :

class Solution {public int[] twoSum(int[] numbers, int target) {int low = 0, high = numbers.length - 1;while (low < high) {int sum = numbers[low] + numbers[high];if (sum == target) {return new int[]{low + 1, high + 1};} else if (sum < target) {++low;} else {--high;}}return new int[]{-1, -1};}
}

15. 三数之和

描述 :

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

题目 :

LeetCode 三数之和
在这里插入图片描述
分析 :

这道题不容易想 , 先理解两数之和 .

代码 :

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> list = new ArrayList<>();int n = nums.length - 1;Arrays.sort(nums);for(int i = 0;i <= n ; i++){if(i > 0 && nums[i] == nums[i - 1]){continue;}int k = n;int targer = -nums[i];for(int j = i + 1 ; j <= n ;j++){if(j > i + 1 && nums[j] == nums[j - 1]){continue;}while(j < k && nums[j] + nums[k] > targer){k--;}if( j == k){break;}if(nums[j] + nums[k] == targer){List<Integer> l = new ArrayList<>();l.add(nums[i]);l.add(nums[j]);l.add(nums[k]);list.add(l);}}}return list;}
}

这期就到这里 , 下期见!

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

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

相关文章

【GitHub项目推荐--开源2D 游戏引擎】【转载】

microStudio 是一个可在浏览器中运行的游戏引擎&#xff0c;它拥有一套精美、设计精良、全面的工具&#xff0c;可以非常轻松地帮助你创建 2D 游戏。 你可以在浏览器中访问 microStudio.dev 开始搭建你的游戏&#xff0c;当然你可以克隆现有项目或创建新游戏并开始编码&#x…

Flink多流转换(1)—— 分流合流

目录 分流 代码示例 使用侧输出流 合流 联合&#xff08;Union&#xff09; 连接&#xff08;Connect&#xff09; 简单划分的话&#xff0c;多流转换可以分为“分流”和“合流”两大类 目前分流的操作一般是通过侧输出流&#xff08;side output&#xff09;来实现&…

Mac Idea安装后无法启动

1、起因 想安装一个新版的idea2023.3.2&#xff0c;结果安装完之后直接无法启动 以为是卸载不干净&#xff0c;下载了一个腾讯柠檬&#xff0c;结果将2018版也一并卸载了 好家伙&#xff0c;彻底没得用 2、找原因 1&#xff09;查看idea报错信息 网上找了一圈&#xff0c;其…

C++20新版本特性—类型与对象

第一章 类型与对象 编程语言中会有类型的概念&#xff0c;C同样也拥有&#xff0c;而C是属于静态类型系统&#xff0c;也就是说对象、变量包括常量都是在编译时就能得到对象的类型&#xff0c;并且确定之后是不可以在改变的。但是对象是运行时的概念&#xff0c;那么&#xff…

Unity 适配器模式(实例详解)

文章目录 简介1. **Input Adapter 示例**2. **Component Adapter 示例**3. **网络数据解析适配器**4. **物理引擎适配**5. **跨平台服务适配** 简介 Unity中的适配器模式&#xff08;Adapter Pattern&#xff09;主要用于将一个类的接口转换为另一个接口&#xff0c;以便于原本…

系统移植 day1 tftp简单文件传输协议和nfs网络文件系统的环境搭建

一.系统移植 1.嵌入式系统的特点 三低&#xff1a;功耗低 成本低 体积小 两高&#xff1a;可靠性高 安全性高 2.通用嵌入式系统硬件一般由一下部分组成 微控制器:cpu 晶振:提供时钟 内存&#xff08;如&#xff1a;SRAM&#xff0c;SDRAM&#xff09;…

ctfshow-命令执行(web53-web72)

目录 web53 web54 web55 web56 web57 web58 web59 web60 web61 web62 web63 web64 web65 web66 web67 web68 web69 web70 web71 web72 web53 …

麒麟系统—— openKylin 安装到虚拟机以及开放SSH通过工具连接

麒麟系统—— openKylin 安装到虚拟机以及开放SSH通过工具连接 1. 在VMware中安装openKylin麒麟系统步骤1&#xff1a;准备VMware环境步骤2&#xff1a;创建新的虚拟机步骤3&#xff1a;安装openKylin麒麟系统步骤4&#xff1a;调整分别率步骤5&#xff1a;安装SSH 2. 使用Open…

x-cmd pkg | perl - 具有强大的文本处理能力的通用脚本语言

目录 介绍首次用户技术特点竞品进一步阅读 介绍 Perl 是一种动态弱类型编程语言。Perl 内部集成了正则表达式的功能&#xff0c;以及巨大的第三方代码库 CPAN;在处理文本领域,是最有竞争力的一门编程语言之一 生态系统&#xff1a;综合 Perl 档案网络 (CPAN) 提供了超过 25,0…

flink-java使用介绍,flink,java

1、环境准备 文档&#xff1a;https://nightlies.apache.org/flink/flink-docs-release-1.18/zh/ 仓库&#xff1a;https://github.com/apache/flink 下载&#xff1a;https://flink.apache.org/zh/downloads/ 下载指定版本&#xff1a;https://archive.apache.org/dist/flink…

c语言-柔性数组

文章目录 前言一、柔性数组的介绍1.1 柔性数组的定义 二、柔性数组的使用2.1 使用说明2.2 结构体中的成员只包含一个柔性数组成员2.3 结构体中的成员包含其他成员和一个柔性数组成员 三、模拟柔性数组总结 前言 本篇文章介绍c语言中的柔性数组。 一、柔性数组的介绍 1.1 柔性…

玩客云Armbian 23.8.1 Bullseye安装PrometheusGrafana

Welcome to Armbian 23.8.1 Bullseye with bleeding edge Linux 6.4.13-edge-meson prometheus 参考Monitoring – How to install Prometheus/Grafana on arm – Raspberry PI/Rock64 | Blogs (mytinydc.com) cd /usr/local/srcwget https://github.com/prometheus/prometh…

MySQL也开始支持JavaScript了

2023 年 12 月 16 日&#xff0c;Oracle 公司在一篇名为 《Introducing JavaScript support in MySQL》的文章中宣布 MySQL 数据库服务器将开始支持 JavaScript 语言。 这个举措标志着继PostgreSQL之后&#xff0c; MySQL 也支持使用 JavaScript 编写函数和存储过程了。作为最…

openssl3.2/test/certs - 018 - trust variants: +anyEKU, -anyEKU

文章目录 openssl3.2/test/certs - 018 - trust variants: anyEKU, -anyEKU概述笔记END openssl3.2/test/certs - 018 - trust variants: anyEKU, -anyEKU 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 #! /bin/bash# ca-cert.pem from exp 015# openssl3.2/test/c…

c语言中的sscanf函数

sscanf函数是C语言中的一个格式化输入函数&#xff0c;用于从字符串中按指定格式提取数据。它的原型如下&#xff1a; int sscanf(const char* str, const char* format, ...); 在这个函数中&#xff0c;"str"是输入的字符串&#xff0c;"format"是格式字…

微信小程序(十一)表单组件(进阶)

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a;&#xff08;涉及内容较多&#xff0c;建议细看源码&#xff09; 1.radio-group的使用与数据处理 2.checkbox-group的使用与数据处理 3.picker的使用与数据同步处理(此处示范了地域与日期) 源码&#xff1a; form…

多协议转BACnet网关BA110

随着通讯技术和控制技术的发展&#xff0c;为了实现楼宇的高效、智能化管理&#xff0c;集中监控管理已成为楼宇智能管理发展的必然趋势。在此背景下&#xff0c;高性能的楼宇暖通数据传输解决方案——协议转换网关应运而生&#xff0c;广泛应用于楼宇自控和暖通空调系统应用中…

Vue学习笔记11--路由2(路由传参/命名路由)

一、路由的query传参 路由的query参数 传递参数 <!--跳转路由并携带query参数&#xff0c; to的字符串写法--> <!-- <router-link :to/home/message/detail?id${m.id}&title${m.title}>{{ m.title }}</router-link> --> <!--跳转路由并携带…

《WebKit 技术内幕》学习之六(2): CSS解释器和样式布局

2 CSS解释器和规则匹配 在了解了CSS的基本概念之后&#xff0c;下面来理解WebKit如何来解释CSS代码并选择相应的规则。通过介绍WebKit的主要设施帮助理解WebKit的内部工作原理和机制。 2.1 样式的WebKit表示类 在DOM树中&#xff0c;CSS样式可以包含在“style”元素中或者使…

erlang (Lists 操作模块)学习笔记(二)

keysearch 42> lists:keysearch(1, 1, [{1,hello},{2,value}]). {value,{1,hello}} 43> lists:keysearch(3, 1, [{1,hello},{2,value}]). false 在元组 TupleList 列表中搜索 第 N个元素比较等于 Key 的元组。 如果找到这样的元组&#xff0c;则返回 {value&#xff0c…