![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法日记
风吟Pro
CRUD搬砖工
展开
-
Leecode-205. 同构字符串
即当前下标 index 对应的字符 s[index] 已经存在映射且不为 t[index] 或当前下标 index 对应的字符 t[index] 已经存在映射且不为 s[index])时说明两个字符串无法构成同构,返回 false。如果遍历结束没有出现冲突,则表明两个字符串是同构的,返回 true 即可。第二张哈希表t2s 以 t 的字符为键,映射至 s 的字符为值。第一张哈希表s2t 以 s 的字符为键,映射至 t 的字符为值,从左至右遍历两个字符串的字符,不断更新两张哈希表。我们维护两张哈希表,...原创 2022-08-09 17:20:59 · 135 阅读 · 0 评论 -
Leecode-SQL 1407. 排名靠前的旅行者
用左连接把对象查出来,用ifnull把null转换成默认值0。原创 2022-08-07 09:26:42 · 135 阅读 · 0 评论 -
Leecode-SQL 1393. 股票的资本损益
sum是字段内求和,if标签进行判断,如果是买入就自动变负数加和,如果是售出就自动加和。两种解法,第一种很微妙。原创 2022-08-07 09:08:09 · 150 阅读 · 0 评论 -
Leecode-SQL 1527. 模糊查询匹配(模糊查询用法)
实际上这个题考的是模糊查询或者是正则匹配模糊查询版本复习一下MySQL模糊查询用法select name from user where name REGEXP ‘.000’;.在正则表达式中表示匹配任意一个字符。进行OR匹配:select name from user where name REGEXP ‘1000|2000’;检索name中包含文本1000或2000的所有行。匹配几个字符之一:select name from user where name REGEXP ‘[123] Ton原创 2022-08-01 15:53:06 · 414 阅读 · 0 评论 -
Leecode-SQL 1484. 按日期分组销售产品
主要的函数就是group_concat,和之前的一篇一样,concat是进行拼接的操作,不过这个是把分组内部的内容按照约定好的顺序进行拼接,你甚至可以指定拼接的顺序是依照什么来的。这道题主要是介绍group_concat函数。拼接的时候可以用去重,这个根据需求来就行。......原创 2022-08-01 15:26:09 · 89 阅读 · 0 评论 -
Leecode-SQL 1667. 修复表中的名字
●substring_index(str,delim,count),str是要截取的字符串,delim是截取的字段count是从哪里开始截取(为0则是左边第0个开始,1位左边开始第一个选取左边的,-1从右边第一个开始选取右边的。left(col_name,length)函数col_name是列名(必选),length是从左往右截取的长度(为正整数,如果为负数则什么也没返回,下标从1开始,不是0)●substring(str,index,len)截取str,从index开始,截取len长度。...原创 2022-08-01 08:42:35 · 164 阅读 · 0 评论 -
Leecode 189. 轮转数组
V1.0版本class Solution { public void rotate(int[] nums, int k) { //数组长度 int oldLength=nums.length; int zhengShuK=(k%oldLength);//求余,整数倍旋转没有意义,把整数倍之外的地方拿出 if(nums.length==1||nums.length<=zhengShuK){ return;.原创 2022-05-22 22:27:17 · 88 阅读 · 0 评论 -
Leecode 35. 搜索插入位置
弱智解法,简单易懂class Solution { public int searchInsert(int[] nums, int target) { int arrayLength=nums.length; if(target<=nums[0]){//只有一个元素的情况,且目标值小于第一个元素 return 0; } for(int i=0;i<arrayLength-1;i++){//遍历 .原创 2022-05-19 08:26:06 · 100 阅读 · 0 评论 -
Leecode14. 最长公共前缀
1.0版本演示动画在这里暴力比较,时间长度O(n^2)class Solution { public String longestCommonPrefix(String[] strs) { if(strs==null){ return ""; } if(strs.length==1){ return strs[0]; }//极端情况处理 StringBuilder .原创 2022-05-15 18:11:03 · 80 阅读 · 0 评论 -
Leecode206. 反转链表
1.0版本思路(双指针)常规解法了,俩指针,头指针pre,当前指针curr在head位置废话不说了,都在注解里~/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val.原创 2022-05-13 14:38:00 · 139 阅读 · 0 评论 -
Leecode剑指 Offer 05. 替换空格
一共有两个关键点一个是读取字符串的下标位置上的字符转换成为char char 字符串对象=字符串.charAt(下标);char的比较一定是单引号!!!!!!!总体来说还是比较简单的,不是特别难~class Solution { public String replaceSpace(String s) { StringBuilder stringBuilder=new StringBuilder();//字符串拼接对象,非线程安全 for(int i=..原创 2022-05-11 10:47:30 · 98 阅读 · 0 评论 -
Leecode83. 删除排序链表中的重复元素
直接上代码吧,不算难,基本上就是单指针遍历,找到位置了就覆盖法跳过下一个/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { thi.原创 2022-05-10 12:11:40 · 111 阅读 · 0 评论 -
Leecode剑指 Offer 18. 删除链表的节点
思路:1.0版本(错误示范)第一次做陷入了一个思维误区就是要一直遍历,而不知到什么时候停下类这段代码是错误示范,总之就是元素一直一直删不掉/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public L.原创 2022-05-09 12:14:21 · 117 阅读 · 0 评论 -
Leecode有效的括号
Leecode有效的括号1.0版本提前压入匹配到的左括号预期值,等到pop时进行检验,最近一次的压入预期值和当前遇到的括号不一样,就代表了匹配失败class Solution { public boolean isValid(String s) { //创建栈 Stack stack = new Stack(); //字符串转数组 char[] array = s.toCharArray(); if (array.原创 2022-05-07 22:10:21 · 175 阅读 · 0 评论 -
Leecode剑指 Offer 03. 数组中重复的数字
剑指 Offer 03. 数组中重复的数字1.0版本思路数组先排序,这样如果有重复的数字,就会放在一起,这就代表了出现了重复数字这个时候循环一下,循环的时候if判断一下,返回结果就ok了循环 if (nums[i]=nums[i+1]){ return 结果; }上个伪代码,但是,leecode不给你导包,Array.sort(数组)是在java.util的内容。so这个方法就不太行了class Solution { publ原创 2022-05-06 20:58:35 · 488 阅读 · 0 评论 -
Leecode移动零
class Solution { public void moveZeroes(int[] nums) { //原地操作基本上都是覆盖 //双指针解法,定义i、j,i来遍历,j来停在0的位置等着i定位下一个有数字的位置进行移动替换操作 int j = 0; for (int i = 0; i < nums.length; i++) { if (nums[i]!=0){//只有i不等于0的时候才需要来移动覆.原创 2022-05-06 19:35:43 · 58 阅读 · 0 评论 -
Leecode斐波那契数列
经典题目了家人们题目要求:斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给定 n ,请计算 F(n) 。示例 1:输入:n = 2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示例 2:输入:n = 3输出:2解释:F(3) = F(2) + F原创 2022-02-19 21:57:27 · 258 阅读 · 0 评论 -
Leecode删除有序数组中的重复项
删除有序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDu原创 2022-02-04 19:48:49 · 88 阅读 · 0 评论 -
Leecode剑指 Offer II 024. 反转链表
剑指 Offer II 024. 反转链表给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000b站大佬的很好的思路,这里借用一下!class Solution {原创 2022-02-03 18:36:11 · 768 阅读 · 0 评论 -
Leecode折半查找(二分查找)
题目如题704. 二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:原创 2022-02-03 18:08:25 · 1001 阅读 · 0 评论 -
递归求阶乘
阶乘递归原创 2022-02-19 22:14:36 · 95 阅读 · 0 评论