![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
每日一练
每天练习1-2道算法题
一颗大米粒儿
这个人不懒,但是啥也不想写
展开
-
每日一练-相交链表
题目链接:相交链表题目描述:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。题目分析:1.相交是指A的节点地址 = B的节点地址2.如果两个链表不一样长,长的链表应该先走差值步,到和短的链表一样长的时候,两个链表再边走边比较。思路描述:1.先确定两个链表,谁长谁短2.长的链表先走差值步3.判断A是否等于B节点运行代码:/** * Definition for singly-linked li原创 2021-12-26 17:23:24 · 209 阅读 · 0 评论 -
每日一练-左旋字符串
题目链接左旋转字符串题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列 S ,请你把其循环左移 K 位后的序列输出。例如,字符序列 S = ”abcXYZdef” , 要求输出循环左移 3 位后的结果,即 “XYZdefabc” 。输入输出示例1:输入:"abcXYZdef",3返回值:"XYZdefabc"示例2:输入:"aab",10返回值:"aba"题目分析方法一:n 表示左移原创 2021-12-16 17:40:08 · 244 阅读 · 0 评论 -
每日一练-滑动窗口
题目链接滑动窗口题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?输入输出示例1:输入:9输出:[[2,3,4],[4,5]]示例2:输入:0返回值:[]题目分析输出所有和为S的连续正数序列。序原创 2021-12-14 09:26:37 · 85 阅读 · 0 评论 -
每日一练-另类加法
题目链接另类加法题目描述给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。测试样例输入:1 2输出:3题目解析本题可以通过位运算实现,具体实现如下:二进制位异或运算相当于对应位相加,不考虑进位二进制位与运算左移一位相当于对应位相加之后的进位两个数相加:对应二进制位相加的结果 + 进位的结果 比如:3 + 2 --> 0011 + 0010 --> 0011^ 0010 + ((0011 & 0010) << 1原创 2021-12-13 21:02:00 · 194 阅读 · 0 评论 -
每日一练-合法括号判断
合法括号判断1.题目链接合法括号判断2.题目描述给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。3.测试用例测试样例1输入:"(()())",6输出:true测试样例2输入:"()a()()",7输出:false测试样例3输入:"()((",4输出:false4.运行代码import java.util.*;public class Parenthesis { public boolean chkPa原创 2021-12-12 09:29:09 · 230 阅读 · 0 评论 -
每日一题-链表的回文结构
题目链接:链表的回文结构题目描述:对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。题目分析:1.找中间节点2.翻转后半部分cur:当前需要翻转的结点 cur = slow.nextslow:cur的前驱curNext:cur的后继结点while(cur != null){ curNext = cur.next; cur.next = s原创 2021-11-23 17:01:50 · 89 阅读 · 0 评论 -
每日一练-进制转换
题目链接进制转换题目描述给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数输入输出输入:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。输出:为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)示例:输入:7 2输出:111代码运行import java.util.*;public class Main{ public static void main(Strin原创 2021-12-10 19:26:42 · 101 阅读 · 0 评论 -
每日一题-删除链表重复节点
题目链接:删除链表中重复的结点题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5题目分析:1.排序的链表,说明重复的数据一定是紧挨着的2.哪个数据是重复的,是不确定的思路描述:1,定义一个cur = head,当cur.val != cur.next.val,cur = cur.next,当cur.val =原创 2021-11-23 14:28:40 · 94 阅读 · 0 评论