![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
暴力枚举
暴力枚举
Ypopstar
这个作者很懒,什么都没留下…
展开
-
LeetCode--1315--祖父节点值为偶数的节点和
题目描述:给你一棵二叉树,请你返回满足以下条件的所有节点的值之和:该节点的祖父节点的值为偶数。(一个节点的祖父节点是指该节点的父节点的父节点。)如果不存在祖父节点值为偶数的节点,那么返回 0 。输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]输出:18题意:题目描述题解:直接用一个栈去模拟代码:/** * Definition for a binary tree node. * public class TreeNod原创 2020-07-08 16:54:15 · 316 阅读 · 0 评论 -
LeetCode--150--逆波兰表达式求值
题目描述:根据 逆波兰表示法,求表达式的值。有效的运算符包括 +, -, , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。输入:[“2”, “1”, “+”, “3”, ""][“4”, “13”, “5”, “/”, “+”][“10”, “6”, “9”, “3”, “+”, “-11”, “", “/”, "”, “17”, “+”, “5”, “+”]原创 2020-07-08 16:50:38 · 148 阅读 · 0 评论 -
LeetCode--1486--数组异或操作
题目描述:给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。输入:n = 5, start = 0n = 4, start = 3n = 1, start = 7n = 10, start = 5输出:8872题意:题目描述题解:直接搞代码:class Solution { public in原创 2020-07-08 16:48:17 · 146 阅读 · 0 评论 -
LeetCode--500--键盘行
题目描述:给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。输入:[“Hello”, “Alaska”, “Dad”, “Peace”]输出:[“Alaska”, “Dad”]题意:题目描述题解:直接搞代码:class Solution { public static String[] findWords(String[] words) { String a = "QWERTYUIOPqwertyuiop"; S原创 2020-07-08 16:46:55 · 168 阅读 · 0 评论 -
LeetCode--1475--商品折扣后的最终价格
题目描述:给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。商店里正在进行促销活动,如果你要买第 i 件商品,那么你可以得到与 prices[j] 相等的折扣,其中 j 是满足 j > i 且 prices[j] <= prices[i] 的 最小下标 ,如果没有满足条件的 j ,你将没有任何折扣。请你返回一个数组,数组中第 i 个元素是折扣后你购买商品 i 最终需要支付的价格。输入:prices = [8,4,6,2,3]prices = [1,原创 2020-07-08 16:43:00 · 221 阅读 · 0 评论 -
LeetCode--905--按奇偶排序数组
题目描述:给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。输入:[3,1,2,4]输出:[2,4,3,1]题意:题目描述题解:直接搞,先放偶数再放奇数代码:class Solution { public int[] sortArrayByParity(int[] A) { int len = A.length; int [] ans = new int [le原创 2020-07-08 16:41:38 · 159 阅读 · 0 评论 -
LeetCode--1108-- IP 地址无效化
题目描述:给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。输入:address = “1.1.1.1”address = “255.100.50.0”输出:“1[.]1[.]1[.]1”“255[.]100[.]50[.]0”题意:题目描述题解:直接搞代码:class Solution { public String defangIPaddr(String address原创 2020-07-08 16:40:34 · 128 阅读 · 0 评论 -
LeetCode--5--最长回文子串
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。输入:babadcbbd输出:babbb题意:题目描述题解:直接搞代码:class Solution { public String longestPalindrome(String s) { int len = s.length(); if (len < 2) { return s; }原创 2020-07-06 16:25:35 · 117 阅读 · 0 评论 -
LeetCode--73--矩阵置零
题目描述:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。输入:[[1,1,1],[1,0,1],[1,1,1]][[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[1,0,1],[0,0,0],[1,0,1]][[0,0,0,0],[0,4,5,0],[0,3,1,0]]题意:题目描述题解:开一个数组记录一下,哪些行和列需要修改,然后直接改就好了代码:class Solut原创 2020-07-06 16:23:50 · 130 阅读 · 0 评论 -
LeetCode--258--各位相加
题目描述:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。输入:38输出:2题意:题目描述题解:直接搞代码:class Solution { public int addDigits(int num) { int ans = num; while(true){ ans = getDigits(ans); if(ans < 10) return ans; }原创 2020-07-06 16:22:35 · 113 阅读 · 0 评论 -
LeetCode--26--删除排序数组中的重复项
题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。输入:nums = [1,1,2]nums = [0,0,1,1,1,2,2,3,3,4]输出:25题意:题目描述题解:直接搞代码:class Solution { public int removeDuplicates(int[] nums) { i原创 2020-07-06 16:21:39 · 102 阅读 · 0 评论 -
LeetCode--137--只出现一次的数字 II
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。输入:[2,2,3,2][0,1,0,1,0,1,99]输出:399题意:题目描述题解:用一个map记录一下,然后直接搞代码:class Solution { public int singleNumber(int[] nums) { int len = nums.length; HashMap<Integer,Intege原创 2020-07-06 16:20:30 · 94 阅读 · 0 评论 -
LeetCode--101--对称二叉树
题目描述:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。输入:a = “11”, b = “1”a = “1010”, b = “1011”输出:10010101题意:题目描述题解:直接搜,对于每一个节点,判断左右子节点是不是相等代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNo原创 2020-07-06 16:19:28 · 125 阅读 · 0 评论 -
LeetCode--20--快乐数
题目描述:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。输入:19输出:true题意:题目描述题解:直接搞代码:class Solution { public boolean isHappy(int n) {原创 2020-07-06 16:18:01 · 146 阅读 · 0 评论 -
LeetCode--268--缺失数字
题目描述:给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。输入:[3,0,1][9,6,4,2,3,5,7,0,1]输出:28题意:题目描述题解:用一个set记录一下,然后直接从0开始暴力代码:class Solution { public int missingNumber(int[] nums) { HashSet<Integer> set = new HashSet<Inte原创 2020-07-06 16:16:11 · 131 阅读 · 0 评论 -
LeetCode--27--移除元素
题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。输入:给定 nums = [3,2,2,3], val = 3给定 nums = [0,1,2,2,3,0,4,2], val = 2输出:22题意:题目描述题解:直接搞代码:class Solution {原创 2020-07-06 16:15:05 · 128 阅读 · 0 评论 -
LeetCode--53--最大子序和
题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:[-2,1,-3,4,-1,2,1,-5,4]输出:6题意:题目描述题解:直接搞代码:class Solution { public int maxSubArray(int[] nums) { int ans = nums[0]; int sum = 0; for(int num: nums) {原创 2020-07-06 16:14:12 · 103 阅读 · 0 评论 -
LeetCode--82--删除排序链表中的重复元素 II
题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。输入:1->2->3->3->4->4->51->1->1->2->3输出:1->2->52->3题意:题目描述题解:直接搞代码:/** * Definition for singly-linked list. * public class ListNode { * int val; *原创 2020-07-06 16:12:56 · 102 阅读 · 0 评论 -
LeetCode--67--二进制求和
题目描述:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。输入:a = “11”, b = “1”a = “1010”, b = “1011”输出:10010101题意:题目描述题解:直接搞代码:class Solution { public String addBinary(String a, String b) { StringBuffer ans = new StringBuffer();原创 2020-06-28 21:24:16 · 135 阅读 · 0 评论 -
LeetCode--83--删除排序链表中的重复元素
题目描述:反转一个单链表。输入:1->1->21->1->2->3->3输出:1->21->2->3题意:题目描述题解:可以通过将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。代码:/** * Definition for singly-linked list. * public class ListNode {原创 2020-06-28 21:23:01 · 112 阅读 · 0 评论 -
LeetCode--206--反转链表
题目描述:反转一个单链表。输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL题意:题目描述题解:直接搞,其中记录一下即可代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { v原创 2020-06-25 21:32:24 · 285 阅读 · 0 评论 -
LeetCode--28--实现 strStr()
题目描述:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。输入:haystack = “hello”, needle = “ll”haystack = “aaaaa”, needle = “bba”输出:2-1题意:题目描述题解:直接搞代码:class Solution { public int strStr(S原创 2020-06-25 21:30:14 · 112 阅读 · 0 评论 -
LeetCode--19--删除链表的倒数第N个节点
题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。输入:1->2->3->4->5, 和 n = 2.输出:1->2->3->5.题意:题目描述题解:首先遍历一遍找出链表的长度再去找倒数第n个也就是正数长度-n个代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode原创 2020-06-25 21:29:16 · 107 阅读 · 0 评论 -
LeetCode--128--最长连续序列
题目描述:给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。输入:[100, 4, 200, 1, 3, 2]输出:4题意:题目描述题解:用一个set记录一下直接找就好了记得在判断的时候要判断前一位在不在Set,避免重复算代码:class Solution { public int longestConsecutive(int[] nums) { int len = nums.length; HashSet&原创 2020-06-25 21:27:58 · 150 阅读 · 0 评论 -
LeetCode--121--买卖股票的最佳时机
题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。输入:[7,1,5,3,6,4][7,6,4,3,1]输出:50题意:题目描述题解:直接暴力找到一个数,然后找到那个数后面的数,使后面数减去前面数最大即可代码:class Solution { public int maxProfit(int[] prices) {原创 2020-06-22 21:50:51 · 109 阅读 · 0 评论 -
LeetCode--94--二叉树的中序遍历
题目描述:给定一个二叉树,返回它的中序 遍历。输入:[1,null,2,3]输出:[1,3,2]题意:题目描述题解:按照中序遍历的定义,直接去模拟代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } *原创 2020-06-22 21:49:32 · 107 阅读 · 0 评论 -
LeetCode--66--加一
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。输入:[1,2,3][4,3,2,1]输出:[1,2,4][4,3,2,2]题意:题目描述题解:直接搞代码:class Solution { public int[] plusOne(int[] digits) { for (int i = digits.length原创 2020-06-21 21:38:12 · 136 阅读 · 0 评论 -
LeetCode--461--用户分组
题目描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。输入:x = 1, y = 4输出:2题意:题目描述题解:直接搞代码:class Solution { public int hammingDistance(int x, int y) { return Integer.bitCount(x ^ y); }}...原创 2020-06-20 21:46:38 · 109 阅读 · 0 评论 -
LeetCode--77--组合
题目描述:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。输入:n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]题意:题目描述题解:基础dfs代码:class Solution { List<List<Integer>> ans = new ArrayList<>(); public List<List<Integer>原创 2020-06-20 21:45:47 · 95 阅读 · 0 评论 -
LeetCode--1207--独一无二的出现次数
题目描述:给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。输入:arr = [1,2,2,1,1,3]arr = [1,2]arr = [-3,0,1,-3,1,1,1,-3,10,0]输出:truefalsetrue题意:题目描述题解:通过map记录一下代码:class Solution { public boolean uniqueOccurrences(int[] arr)原创 2020-06-20 21:44:49 · 118 阅读 · 0 评论 -
LeetCode--23--合并K个排序链表
题目描述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。输入:1->4->5,1->3->4,2->6输出:1->1->2->3->4->4->5->6题意:题目描述题解:按照排序两个链表,找一个基准直接搞代码:/** * Definition for singly-linked list. * public class ListNode { * int val; *原创 2020-06-20 21:43:33 · 102 阅读 · 0 评论 -
LeetCode--852--山脉数组的峰顶索引
题目描述:我们把符合下列属性的数组 A 称作山脉:A.length >= 3存在 0 < i < A.length - 1 使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1] 的原创 2020-06-20 21:42:19 · 171 阅读 · 0 评论 -
LeetCode--125--验证回文串
题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。输入:A man, a plan, a canal: Panamarace a car输出:truefalse题意:题目描述题解:按题意模拟代码:class Solution { public boolean isPalindrome(String s) { int l = 0; int r = s.lengt原创 2020-06-20 21:41:15 · 98 阅读 · 0 评论 -
LeetCode--21--合并两个有序链表
题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题意:题目描述题解:直接迭代,一个个去比对代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne原创 2020-06-20 21:40:18 · 99 阅读 · 1 评论 -
LeetCode--35--搜索插入位置
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。输入:[1,3,5,6], 5[1,3,5,6], 2[1,3,5,6], 7[1,3,5,6], 0输出:2140题意:题目描述题解:找到第一个大于等于它的返回就好了,如果没有,返回数组长度代码:class Solution { public int searchInsert(int[] nums, int原创 2020-06-20 21:38:33 · 96 阅读 · 0 评论 -
LeetCode--1--两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。输入:nums = [2, 7, 11, 15], target = 9输出:[0, 1]题意:题目描述题解:直接找代码:class Solution { public int[] twoSum(int[] nums, int target) { int [原创 2020-06-20 21:37:02 · 99 阅读 · 0 评论 -
LeetCode--88--合并两个有序数组
题目描述:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]题意:题目描述题解:按题原创 2020-06-20 21:35:22 · 72 阅读 · 0 评论 -
LeetCode--1282--用户分组
题目描述:给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。输入:[1,2,3,1][1,2,3,4][1,1,1,3,3,4,3,2,4,2]输出:truefalsetrue题意:题目描述题解:用个map记录一下代码:class Solution { public boolean containsDuplicate(int[] nums) { HashSe原创 2020-06-20 21:30:46 · 144 阅读 · 0 评论 -
LeetCode--9--回文数
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。输入:121-12110输出:truefalsefalse题意:题目描述题解:按题意模拟代码:class Solution { public boolean isPalindrome(int x) { if(x >= 0 && x <= 9) return true; if(x < 0) return fal原创 2020-06-20 21:29:31 · 86 阅读 · 0 评论 -
LeetCode--58--最后一个单词的长度
题目描述:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。输入:Hello World输出:5题意:题目描述题解:按题意模拟代码:class Solution { public int lengthOfLastWord(String s) { int end原创 2020-06-20 21:28:09 · 126 阅读 · 0 评论