自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 101.对称二叉树

给定一个二叉树,检查它是否时镜像对称的。 例如,二叉树[1,2,2,3,4,4,3]时对称的。 1 / \ 2 2 / \ / 3 4 4 3 思路 如果同时满足下面的条件,两个树互为镜像: 1.它们的两个根节点具有相同的值。 2.每个树的右子树都与另一个树的左子树镜像对称。 public boolean isSymmetric(TreeNode r...

2020-03-20 21:50:57 133 1

转载 100.相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树再结构上相同,并且节点具有相同的值,则认为它们是相同的。 输入: 1 1 / \ / 2 3 2 3 [1,2,3] [1,2,3] 输出: true 思路 递归。首先判断p和q是不是None,然后判断它们的值是否相等。若通过以上判断,...

2020-03-19 19:59:39 132

转载 10.正则表达式匹配

给你一个zifuchuans和一个字符规律p,请你实现一个支持’.‘和’*'的正则表达式匹配。 '.'匹配任意单个字符 '*'匹配零个或多个前面的那一个元素 示例1: 输入: s = "aa“ p = “a” 输出:false 解释: "a"无法匹配"aa"整个字符串。 示例2: 输入: s= “aa” p = “a*” 输出: true 解释: 因为’*‘代表可以匹配零个或多个前面的哪一个元素,...

2020-03-18 21:13:26 128

转载 5.最长回文子串

给定一个字符产s, 找到s 中最长的回文子串。你可以假设s的最大长度为1000。 示例1: 输入:“babad” 输出:“bad” 注意:"aba"也是一个有效答案。 思路: public boolean isPalindromic(String s){ int len = s.length(); for(int i = 0; i < len /2 ; i++){ if(s.cha...

2020-03-17 21:18:02 118

转载 3.无重复字符的最长子串

给定一个字符串,请你找其中不含有重复字符的最长字符的长度。 示例1: 输入:“abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是“abc”,所以长度为3. 思路: 利用滑动窗口,将元素一个个入队列,一旦出现重复元素,将最左侧的元素出队列。 class Solution{ public: int lengthOfLongestSubstring(string s){ if...

2020-03-16 19:46:20 92

转载 14.最长公共前缀

题目: 编写一个函数来茶轴字符串数组肿的最长公共前缀。 如果不存在公共前缀,返回空字符串"". 示例1: 输入:[“flower”,“flow”, “flight”] 输出: “fl" 思路: 两两查找,先找其中的两个字符的公共前缀。再将公共前缀与另一个字符比较查找公共前缀。 public String longestCommonPrefix(String[] strs){ if( strs.l...

2020-03-14 21:44:07 111

转载 13.罗马数字转整数

题目: 罗马数字包含一下七种字符:I, V, X, L, C, D和M. 字符 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字2写作II,12写做XII,即为X+II.27写作XXVII,即为XX + V + II。 ...

2020-03-13 17:42:20 115

转载 23.合并k个排序链表

合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 输入: [ 1->4->5 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 思路: 运用归并分治思想,自底向上,依次合并 分治法: 1.分解原问题为若干个子问题,这些子问题是原问题的规模较小的实例; 2.递归求解这些子问题...

2020-03-12 20:25:55 97

转载 19.删除链表的倒数第N个节点

给定一个链表,1->2->3->4->5,和 n=2 当删除了倒数第二个节点后,链表变为1->2->3->5 思路: 删除倒数第几, 就等于删除正数第n-ji,首先将链表遍历一遍,每遍历一个元素,长度加1,整个链表遍历一次后,就能得出整个链表的长度。删除下一个节点,即将当前节点的next指针指向下下个节点。 public ListNode removeNt...

2020-03-11 13:04:26 88

转载 2. 两数相加

给出两个非空的链表用来表示两个非负的整数。其中,他们各自的位数是按照逆序存储的,并且他们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来, 则会返回一个新的链表表示他们的和。 思路: 需要考虑低位相加的和有进位, ...

2020-03-10 13:08:35 107

转载 141.环形链表

给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数Pos来表示链表尾链接到链表中的位置。如果pos是-1,则在该链表中无环。 示例1: 输入:head=[3, 2, 0,-4] , pos =1 输出: true 链表中有一个环,其尾部链接到第二个节点。 ...

2020-03-09 18:57:43 107

转载 83.删除排序链表中的重复元素

给定一个排序链表,删除所有重复元素,使得每个元素只出现一次。 输入: 1->1->2 输出: 1->2 输入: 1->1->2->3->3 输出:1->2->3 思路: 因为是排好序的,所以判断当前元素与下一个元素是否相等,相等的话当前元素的next指针指向吼吼一个节点。 public ListNode deleteDuplicate(List...

2020-03-08 12:51:48 99

转载 21.合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 思路 分别用两个指针指向两个链表的第一个元素,如果第一个链表所指元素小于第二个链表所指元素,则将小的哪个元素合并至链表,小的链表其指针后移一位。如果其中一个链表的指针已经遍历一遍。另一个链表则不再比较,将剩余链表直接插入合并链表。 public ListNode mergeTwoLists(ListNod...

2020-03-07 20:18:28 96

转载 16.最接近的三数之和

题意 给定一个包含n个整数的数组nums 和一个目标值target,找出nums中的三个整数,使得他们的和与target最接近。返回这三个数的和。假设每组输入只存在唯一答案。 例如,给定数组,nums=[-1,2,1,-4],和target=1.与target最接近的三个数的和为2.(-1+2+1=2) 思路 这道题和根据target,找匹配的三数之和类似。先排序,设置i,L,R指针,外层循环指示...

2020-03-05 12:20:30 118

原创 15.三数之和

给定一个满足n个整数的数组nums,判断nums数组中是否存在三个元素,a,b,c,使得a+b+c=0?找出所有满足条件且不重复的三元组。 思路: 穷举遍历,设置三重循环,if(nums[i]+nums[j]+nums[k]==0),则return i,j,k。暴力法解时间复杂度为O(n^3),明显无法过测试。 看了"灵魂画手"的解法,先将数组从小到排序,最外层循环i,里层用两个指针L,R分别指示...

2020-03-04 11:26:52 131

转载 27.移除元素

题目 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 思路: 对整个数组进行循环遍历,如果碰到nums[i]判断为等于val,将数组的长度len–,len是最开始定义的数组总长,每遇...

2020-03-03 10:54:51 123

原创 26.删除排序数组中的重复项

题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 思路: 拿到这道题感到很棘手,首先想到新创建一个数组,对数组nuns[]进行遍历,判断新的空数组有无此值,相当于每次遍历一个nums[]中的值,就要把新数组过一遍是否有此nums[]值。 这道题不知道输...

2020-03-02 10:22:21 146

原创 leetcode两数之和求所有的组合

题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 思路: 1.从第一个位置起,尝试其他位置和1的组合。完成以后,再从第二个位置开始,分别从第 3到第n进行组合尝试。也就是两个for循环,外层从0开始到n-1.内循环从外层循环当前位置加1开始进行遍历。 class Solution { public: vec...

2020-03-01 10:26:37 743

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除