力扣刷题【第一期】

文章目录

      • 1.爬楼梯
      • 2.求两数的和(283)
      • 3.移动零(283)
        • 3.1 题目描述
        • 3.2 算法描述
        • 3.3具体实现
      • 4.合并有序连表(21)
        • 4.1 题目描述
        • 4.2 算法思想
        • 4.3 代码实现
      • 5.删除连表中重复的值(83)
        • 5.1 题目描述
        • 5.2 算法思想
        • 5.3 代码实现
      • 6.环形连表(141)
        • 6.1 题目描述
        • 4.2 算法思想
        • 6.3 代码实现
      • 7.相交链表(160)
        • 7.1 题目描述
        • 7.2 算法思想
        • 7.3 代码实现

1.爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

在这里插入图片描述

在这里插入图片描述

class Solution {
public:int climbStairs(int n) {if(n==1) return 1;if(n==2) return 2;int result=0;int pre=2;int prePre=1;for(int i=3;i<=n;i++){result=pre+prePre;prePre=pre;pre=result;}return result;}
};

2.求两数的和(283)

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

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

3.移动零(283)

3.1 题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

3.2 算法描述

本题目采用双指针,i和j
1.i和j指向第一个元素,i先后移动当i的值不为0时,将i的值赋值给j,同j向后移动。
2.当i遍历结束时,j的数据代表的是数组中为0 的个数。
3.在遍历数组将后面的数组该为0

3.3具体实现

class Solution {public void moveZeroes(int[] nums) {if(nums==null){return ;}int j=0;for(int i=0;i<nums.length;i++){if(nums[i]!=0){nums[j]=nums[i];j++;}}for(int i=j;i<nums.length;i++){nums[i]=0;}}
}

4.合并有序连表(21)

4.1 题目描述

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

4.2 算法思想

1.定义一个新的节点p
2.判断list1和list2如果为空,则直接返回不为空的连表。
3.当list1和list2同时不为空时,判断如果list1<list2,则将p指针指向list1,同时list1向左移动。p指针也向做移动。反之。
3.当list1和list2不满足条件时,list1或者list2还为遍历完毕。则将p指针指向list1或者list2.

4.3 代码实现

class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {if(list1==null) return list2; // 为空返回list2if(list2==null) return list1;ListNode resultNode=new ListNode(0);ListNode p=resultNode;while(list1!=null && list2!=null){if(list1.val < list2.val){p.next=list1;list1=list1.next;}else{p.next=list2;list2=list2.next;}p=p.next;}if(list1!=null){ // list1还未遍历完,将其与的直接到p的后面p.next=list1;}if(list2!=null){p.next=list2;}return resultNode.next;}
}

5.删除连表中重复的值(83)

5.1 题目描述

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。

5.2 算法思想

1.比较当前节点的值与下一个节点的值。
2.若相同则,将当前节点的指针指向下一个节点的下一个下一个节点。
3.若不同则移动指针。

5.3 代码实现

class Solution {public ListNode deleteDuplicates(ListNode head) {if(head==null){return head;}ListNode l=head;while(l.next!=null){if(l.val==l.next.val){l.next=l.next.next;}else{l=l.next;}}return head;}
}

6.环形连表(141)

6.1 题目描述

给你一个链表的头节点 head ,判断链表中是否有环。

4.2 算法思想

1.设置p和q指针,q是快指针,每次移动两个,q是慢指针每次移动一个。
2.循环遍历链表,若p==q则链表中存在环。

6.3 代码实现

public class Solution {public boolean hasCycle(ListNode head) {if(head==null) return false;ListNode p=head,q=p;while(p.next!=null && p.next.next!=null){p=p.next.next;q=q.next;if(p==q){return true;}}return false;}
}

7.相交链表(160)

7.1 题目描述

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。
在这里插入图片描述

7.2 算法思想

1.分别计算出a和b链表的长度。
2.计算出a和b长度的差。
3.让a或者b先移动d个单位的指针。
4.此时a和b指针起始位置已经相同。

7.3 代码实现

public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {int l1=0,l2=0,d=0;ListNode head1=headA,head2=headB;while(head1.next!=null){l1++;head1=head1.next;}while(head2.next!=null){l2++;head2=head2.next;}if(l1<l2){head1=headB;head2=headA;d=l2-l1;}if(l1>l2){head1=headA;head2=headB;d=l1-l2;}for(int i=0;i<d;i++){head1=head1.next;}while(head1.next!=null&&head2.next!=null){if(head1==head2)return head1;head1=head1.next;head2=head2.next;}return null;}
}

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

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

相关文章

力扣刷题Day4

24. 两两交换链表中的节点 题目&#xff1a;力扣 难点在与如何模拟节点的交换&#xff0c;在编码实现的时候容易出现杂乱而导致循环节点的出现。 在自己实现的时候&#xff0c;出现的错误&#xff1a; 把head和head.next作为迭代的基准&#xff0c;但是存在的问题是&#x…

力扣刷题流程--记录用

目前已完成第一小节的做题任务&#xff0c;前路漫漫啊。 第一部分 数据结构基础&#xff08;155 题&#xff09; 数组和字符串&#xff08;22 题&#xff09; 数组类算法&#xff08;12 题&#xff09; 链表&#xff08;15 题&#xff09; 队列 & 栈&#xff08;2…

【力扣刷题 | 第五天】

目录 前言&#xff1a; 15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 18. 四数之和 - 力扣&#xff08;LeetCode&#xff09; 结束&#xff1a; 前言&#xff1a; 今天两道题类型相似&#xff0c;解法思路一致&#xff0c;都利用了双指针技术。 15. 三数之和 - 力…

力扣-刷题记录

189. 轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 力扣https://leetcode.cn/problems/rotate-array/description/ void rotate(int* nums, int numsSize, int k){if(k > numsSize){k % numsSize;}if(k0){f…

出海周报|Temu在美状告shein、ChatGPT安卓版上线、小红书回应闪退

工程机械产业“出海”成绩喜人&#xff0c;山东相关企业全国最多Temu在美状告shein&#xff0c;跨境电商战事升级TikTok将在美国推出电子商务计划&#xff0c;售卖中国商品高德即将上线国际图服务&#xff0c;初期即可覆盖全球超200个国家和地区ChatGPT安卓版正式上线&#xff…

方法试用:基于强化学习提高EEG分类准确率的特征选择方法(完整代码)

2023/4/19 -4/21 脑机接口学习内容一览&#xff1a; 这一篇文章主要建立在前文脑机接口随机森林判断睡眠类型与EEG前沿方法探索的基础上&#xff0c;尝试运用强化学习的方法来提高识别睡眠阶段的准确率&#xff0c;对前段时间强化学习的学习成果做一个总结。 一、强化学习类详解…

最简单容易的四格漫画制作软件 Comic Strip Factory for Mac

Comic Strip Factory for Mac是一款漫画制作软件&#xff0c;小编亲测推荐。 Comic Strip Factory 发布了最新版本1.0.137&#xff0c;专为喜欢漫画的用户准备的。无需你会绘画就可以在Mac上制作精美的漫画&#xff0c;常见的卡通四格漫画都可以用它制作。 Comic Strip Fact…

怎么用手机制作一个四格漫画(flutter)

一&#xff0c;背景 四格漫画&#xff0c;是以四个画面分格来完成一个小故事或一个创意点子的表现形式 &#xff0c;分为开头&#xff0c;发展&#xff0c;高潮&#xff0c;结尾 。那怎么用手机制作一个四格漫画呢&#xff1f;就像下图这样。 二&#xff0c;思考过程 漫画么&…

GPT-5: 超越人类语言的模型,你还不了解一下?

目录 一、GPT-5时代引领者 二、技术特性 1&#xff0c;音频和视频处理 — 更强大的多模态处理能力 2&#xff0c;GPT-5颠覆影视制作&#xff1a;重写媒体消费时代 3&#xff0c;为机器人提供智慧大脑 4&#xff0c;更强的垂直行业应用 三、回顾一下GPT5被紧急叫停&…

【论文阅读】Computational Personality: A Survey 计算性格学综述

文章目录 摘要1. 引言2. 计算性格学研究框架2.1 性格学理论基础2.1.1 性格分类模型2.1.2 性格计算&#xff08;测量&#xff09;方法 2.2 计算性格学研究框架 3. 计算性格学研究3.1 性格预测3.1.1 基于大五模型的性格预测3.1.2 基于MBTI性格量表的性格预测3.1.3 小结 3.2 抑郁检…

安装oracle时,口令管理忘记解锁scott!

首先&#xff0c;别急&#xff0c;昨天我也是百度弄了很久才弄好&#xff0c;所以今天整理一下&#xff0c;把昨天的小小成果展示出来。 步骤&#xff1a;1.进入黑屏&#xff0c;输入sqlpus&#xff1b; 2.输入用户名&#xff1a;sys&#xff1b; 输入口令&#xff1a;sys(这个…

Primavera P6用户密码锁定及管理员忘记密码处理

经常有一些同行问到&#xff0c;下面是P6 两个相对极端的问题怎么处理 A, 管理员用户被锁定&#xff08;密码还记得&#xff09; B, 管理员忘记密码 处理这类问题一般在需要在数据库层级操作&#xff0c;当然建议信息部&#xff08;或DB&#xff09;如此操作&#xff0c;毕竟不…

oracle11g忘记管理员密码

oracle的sys和system密码是我们经常忘记的&#xff0c;忘记之后我们可以通过sqlplus来修改重置。 首先打开sqlplus&#xff1a;在运行处可直接输入打开 进入窗口后&#xff0c;首先输入 sqlplus/as sysdba 口令不要输入&#xff0c;直接回车 等数据库连接上之后执行sql语…

Oracle用户密码失效解决办法

错误信息 Oracle用户密码失效后&#xff0c;通常会报如下的错误&#xff1a; java.sql.SQLException: ORA-28001: the password has expired ORA-28001: the password has expired 查看密码有效期 这时候我们需要用sysdba登陆&#xff0c;登录后执行一下语句&#xff1a; …

Oracle System密码忘记 密码修改、删除账号锁定lock

运行cmd命令行 录入 sqlplus /nolog 无用户名登录 conn /as sysdba 连接到数据本地数据alter user system identified by password; 修改System 密码 为password或者打开sqlplus软件: 窗口用户名录入:/nolog D:\oracle\ora92\bin>sqlplus /nolog SQL*Plus: Release 9…

Oracle11g密码忘记

生活中&#xff0c;容易忘记Oracle数据库system用户的密码&#xff0c;怎么办呢&#xff0c;小生带你一步步重新登上Oracle &#xff0c;及时你密码忘记了。 1、打开cmd窗口&#xff0c;输入 sqlplus / as sysdba 2、运行cmd &#xff0c;输入 alter user 用户名 account un…

oracle忘记system密码,锁定

1.按住WindowsR&#xff0c;弹出运行框&#xff0c;输入sqlplus 2.输入sqlplus/as sysdba,回车 3.输入语句:alter user system identified by system; ---- 即可修改密码为system 4.输入语句:alter user system account unlock; ---- 即可解锁用户system

Oracle忘记密码以及账户被锁的解决办法

o(╥﹏╥)o昨天安装Oracle和PLSQL弄了一天&#xff0c;好不容易PLSQL可以连接Oracle也可以登录了&#xff0c;但是今天一直提示这个错误&#xff1a; &#xff08;这是在SQL Plus里面的错误提示&#xff0c;PLSQL里也是&#xff09; 我第一反应是密码输错了&#xff0c;然后又…

基于PHP的客户分销商管理系统

基于PHP的客户分销商管理系统 一 系统介绍 客户分销商管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;角色分为分销商和管理员&#xff0c;分销商登录可以查看个人信息和客户信息。管理员登录对客户&#xff0c;分销商及业绩进行管理。 技术栈 phpmysqlbootstrap…

通用分销渠道和通用产品组的解析

SAP为了结构化数据&#xff0c;通过销售范围&#xff08;销售组织&#xff0c;销售渠道&#xff0c;产品组&#xff09;来建立销售订单&#xff0c;销售范围是销售组织&#xff0c;销售渠道和产品组集合&#xff0c;需要大量维护销售视图。 在实际中&#xff0c;有些客户可能通…