![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣
ThE wAlkIng D
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 58 - I. 翻转单词顺序
s.trim()方法去除空格键,让i,j从尾部开始遍历当i遍历到空格的时候,使用substring进行截取,把单词截取出来放到res新建StringBuilder后面,最终使用tostring转换成字符串。输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"Iamastudent.“,则输出"student.aamI”。本题使用双指针的方法进行遍历。...原创 2022-07-24 21:12:17 · 133 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
接着再让慢指针和快指针一起向后走,在并列一个while循环,走快慢指针。使用快慢指针双指针来做,倒数第K的意思就是快慢指针相隔k个单位进行遍历。首先先让快指针走K个单位,while循环遍历快指针。......原创 2022-07-23 11:48:07 · 154 阅读 · 0 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
首先定义两个指针,两个指针均从为0的位置开始遍历,第一个指针后移,哈希表中的字母加1,直到哈希表中某个字母的值为2,则第二个指针后移知道字母数值为二地方的值变为一,统计两个指针之间的间距。主要的难点是i先走,j在i的空间内遍历,设置中间变量l作为存储中间值。dp[j]表示右边界下标为j的时候,可以取到的最长不重复范围长度。...原创 2022-07-22 11:50:33 · 66 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
本体使用队列来做,队列的目的就是存储原始序列顺序的二叉树首先判断根节点是否为空然后新建子队列队列压入根节点使用while(循环)弹出队列元素分别压入左右节点交换左右节点返回初始结点...原创 2022-07-12 16:43:33 · 107 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
本题使用递归的方法来寻找:先从根节点判断B是不是A的子结构,如果不是在分别从左右两个子树判断,只要有一个为true,就说明B是A的子结构如果B为空,A不为空则遍历结束如果B不为空,A为空,或者这两个结点的值不一样则返回返回false。接着比较A,B节点的对应的左右子树。...原创 2022-07-12 15:57:20 · 117 阅读 · 0 评论 -
剑指 Offer 32 - II. 从上到下打印二叉树 II
本道题使用广度优先遍历的层序遍历,使用迭代法进行遍历(根据层序遍历的特点使用队列进行存储)本题与上面一题的不同在于输出的是二维链表,即使用上一个方法遍历的结果,引入一层while循环进行遍历存储每一层的值...原创 2022-07-06 09:52:31 · 112 阅读 · 0 评论 -
剑指 Offer 50. 第一个只出现一次的字符
剑指 Offer 50原创 2022-07-05 11:09:37 · 41 阅读 · 0 评论 -
剑指 Offer 53 - II. 0~n-1中缺失的数字
)使用等差数列公式求出n项和,然后求出数组的和,两者进行相减原创 2022-07-04 16:34:50 · 47 阅读 · 0 评论 -
剑指 Offer 53 - I. 在排序数组中查找数字 I
)两种方法第一种:暴力解决。第二种:使用双分查找,由于是排序好的数组,对于找到的那个值,让他加加判断是否相等,如果相等就让count+1;原创 2022-07-04 15:13:29 · 42 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
主要考察substring的用法。原创 2022-07-04 11:16:35 · 56 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
1.使用数组来做,首先将新建一个数组,计算原始字符串的长度当做数组长度2.遍历数组。找到空格字符串,提换为“%20”;3.新数组建立原来数组长度的三倍,用来存放新字符串4.字符串数组转为字符串5.考察.charAt的用法,以及字符数组转为字符串的用法(String a =new String())...原创 2022-07-04 11:14:16 · 56 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
1.使用数组来做,首先将新建一个数组,计算原始字符串的长度当做数组长度2.遍历数组。找到空格字符串,提换为“%20”;3.新数组建立原来数组长度的三倍,用来存放新字符串4.字符串数组转为字符串5.考察.charAt的用法,以及字符数组转为字符串的用法(String a =new String())...原创 2022-07-04 10:52:58 · 71 阅读 · 0 评论 -
剑指 Offer 06.从头到尾打印链表
1.由于输入输出都是数组,所以新建一个数组,用来存放反转以后的数组即从尾部到头的数组2.其次取出数组的长度赋值给新数组3.头结点取值赋值给新数组,然后往后遍历,原创 2022-07-04 09:38:34 · 91 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
1.首先定义两个栈s1,s2,s1的栈顶作为队尾,s2的栈顶作为队投2.删除操作首先判断s2是否为空 如果不为空,把栈顶元素弹出就是头元素 如果为空,将s1所有元素弹出入栈到s23.s2为空返回-1,不为空返回栈顶元素...原创 2022-07-01 15:21:05 · 51 阅读 · 0 评论 -
每日一题-无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。原创 2022-06-30 10:51:47 · 138 阅读 · 0 评论 -
每日一题-搜索二维矩阵ps二维数组的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。如果要使得查找速度最快,则需要从矩阵的左下角开始遍历,因为从左下角来说,向上数字递减,向右数字变大,当目标值比搜索值大的时候,上移,当目标值比搜索值小的时候,右移...原创 2022-06-29 11:17:33 · 70 阅读 · 0 评论 -
LeeCode每日一题-剑指Offer58-II.左旋转字符串
1. 题目2. 代码class Solution { public String reverseLeftWords(String s, int n) { StringBuilder sb=new StringBuilder(s); int len=s.length(); reverseString(sb,0,n-1); reverseString(sb,n,n-1); String sb2=sb.reverse()原创 2022-04-07 10:17:48 · 95 阅读 · 0 评论 -
LeeCode每日一题-替换空格
1.题目2. 代码class Solution { public String replaceSpace(String s) { if(s == null || s.length() == 0){ return s; } StringBuilder str = new StringBuilder(); for (int i = 0; i < s.length(); i++) { if(s.charAt(i) == '原创 2022-04-06 10:50:27 · 211 阅读 · 0 评论 -
LeeCode每日一题-反转字符串(二)
1.题目2. 代码class Solution { public String reverseStr(String s, int k) { char[] ch=s.toCharArray(); for(int i=0;i<ch.length;i+=2*k){ int start=i; int end=Math.min(ch.length-1,start+k-1);//关键一步 判断尾数够不够k个来取决end指原创 2022-04-05 20:21:39 · 120 阅读 · 0 评论 -
LeeCode每日一题-四数之和(双指针)
1. 题目2. 代码class Solution { public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> result = new ArrayList<>(); Arrays.sort(nums); for (int i = 0; i < nums.leng原创 2022-04-02 09:50:14 · 78 阅读 · 0 评论 -
LeeCode每日一题-三数之和
1. 代码class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> result = new ArrayList<>(); Arrays.sort(nums); for (int i = 0; i < nums.length; i++) { if原创 2022-03-31 11:26:30 · 96 阅读 · 0 评论 -
LeeCode每日一题-快乐数
202.快乐数题目「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 + 0^2 + 0^2 = 1思路题目中说了会出现无限循环,也就是说在求和原创 2022-03-23 19:50:09 · 229 阅读 · 0 评论