LeetCode
文章平均质量分 68
Tiffany小仙女
这个作者很懒,什么都没留下…
展开
-
动态规划LeetCode
动态规划的精髓感觉始终没有掌握,只能祈求不断刷题来体会不同路径问题https://leetcode-cn.com/problems/unique-paths/通过构造dp数组来实现,将第一行和第一列初始化为1,因为机器人只能向右和向下移动,然后动态规划的状态转移方程为:dp[i][j] = dp[i-1][j]+dp[i][j-1]知道这些就可以写出代码class Sol...原创 2021-11-13 21:09:04 · 113 阅读 · 0 评论 -
LeetCode-852-返回数组最大峰值
输入一组数,找到这组数的最大值,并返回它的索引我写的代码class Solution { public int peakIndexInMountainArray(int[] A) { int i = 0; while (A[i] < A[i+1]) i++; return i; }}这个运行时间是3ms下面这...原创 2018-11-02 21:38:11 · 276 阅读 · 0 评论 -
LeetCode-922-数组排序2
大概意思是数组中索引号为奇数的数字也要为奇数,索引号为偶数的数字也要为偶数,我之前写的代码有问题,先上反例class Solution { public int[] sortArrayByParityII(int[] A) { int N = A.length; int[] ans = new int[N]; for(int i =...原创 2018-11-04 20:33:06 · 238 阅读 · 0 评论 -
LeetCode-867-矩阵转置
求给定矩阵的转置代码如下class Solution { public int[][] transpose(int[][] A) { int m = A.length; int n = A[0].length; int[][] B = new int[n][m]; for(int i = 0;i<m;i++...原创 2018-11-04 20:47:24 · 173 阅读 · 0 评论 -
leetCode-树
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.题目:给定二叉树,找到它的最大深度。最大深度是从根节点到最远叶节点的...原创 2019-01-03 19:23:34 · 130 阅读 · 0 评论 -
LeetCode-961
题目描述:返回数组中重复元素的值class Solution { public int repeatedNTimes(int[] A) { HashMap<Integer,Integer> map = new HashMap<>(); for(Integer i:A) map.put(i,map.getO...原创 2019-01-21 21:15:58 · 192 阅读 · 0 评论 -
LeetCode——有关递归的相关题目
最近发现自己并没有真正理解递归,于是重新把递归的相关题目又重新做了一遍,参考了http://39.96.217.32/blog/4#comment-container讲解,很受用111. 二叉树的最小深度这道题有一个陷阱就是当根节点只有左子树或者只有右子树的时候,最小深度是2,而不是1,所以我决定单独判断这两种情况/** * Definition for a binary tree...原创 2019-06-27 09:35:49 · 555 阅读 · 0 评论 -
LeeCode——二叉树前序遍历(递归+非递归)
144. 二叉树的前序遍历题目只给了public List<Integer> preorderTraversal(TreeNode root)这个函数形式,这个直接递归是肯定不行的,因为list在递归中时变化的,因此需要一个helper函数,用将每次遍历的结果保存到list中/** * Definition for a binary tree node. * public...原创 2019-06-27 15:29:00 · 539 阅读 · 0 评论 -
LeetCode——关于二叉树最近公共祖先的问题
235. 二叉搜索树的最近公共祖先首先当树为二叉搜索树时,情况较为简单,直接递归遍历即可/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x...原创 2019-06-28 10:19:14 · 207 阅读 · 0 评论 -
LeetCode-728-自分割数字
class Solution { public List<Integer> selfDividingNumbers(int left, int right) { List<Integer> list = new ArrayList<>(); for(int i = left;i<=right;i++){ ...原创 2018-11-01 21:43:52 · 291 阅读 · 0 评论 -
LeetCode-561-数组划分
好久没有自己写过代码了,虽然效率不高但通过了,纪念一下,同时借鉴网上的大牛们的代码,改进自己的class Solution { public int arrayPairSum(int[] nums) { Arrays.sort(nums); int sum = 0; for(int i = 0;i<nums.length;i ...原创 2018-11-01 21:19:34 · 211 阅读 · 0 评论 -
LeetCode-第九题-回文数
分析:首先判断负数一定不是回文数,将原数逆转是关键使用了reverse = reverse*10+temp%10; temp = temp/10;来获得逆转之后的数class Solution { public boolean isPalindrome(int x) { if(x<0) return false...原创 2018-08-13 19:17:08 · 252 阅读 · 0 评论 -
LeetCode——宝石与石头
题目描述:J表示的是各种宝石,S表示持有的石头,判断出S中到底有多少个J中的元素,注意是区分大小写的class Solution { public int numJewelsInStones(String J, String S) { int res = 0; Set set = new HashSet(); for(char j:...原创 2018-10-02 21:21:01 · 312 阅读 · 0 评论 -
LeetCode-657-机器人返回原位置
用R,L,U,D分别表示机器人向右,左,上,下移动,通过两个字母组成的字符串判断经过两次移动后机器人是否能回到原来的位置,如第一次向左移动,那么第二次必须向右移动,返回值为true,可以考虑设置标记来判断,向左移动x++,向右移动x--,向上移动y++,向下移动y--,有了这个思路可以尝试些代码了class Solution { public boolean judgeCircle(...原创 2018-10-31 20:35:28 · 536 阅读 · 0 评论 -
leetcode-832-反转图像
给定一个二进制矩阵,先水平翻转矩阵,然后翻转它,水平翻转意味着第一个位置上的数与最后一个位置上的数进行交换,反转的意思是1变0,0变1,思路:考虑使用数组的交换加异或运算,所有运算可以理解为一行行的处理,每一行的内容与其他行都是不相关的,用异或运算很巧妙,反正我是没想到,意思就是,将数组水平翻转的同时进行异或运算,如果翻转后的值是1,那么反转(与1异或)就是0,如果翻转后的值是0,与1异或(反...原创 2018-10-31 21:11:19 · 354 阅读 · 0 评论 -
LeetCode-804-独一无二的莫尔斯码
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.&quo原创 2018-10-31 21:40:28 · 361 阅读 · 0 评论 -
LeetCode-929-唯一的email地址
意思是在@后面的部分不相同的即视为是一个email地址,我们可以考虑使用set集合来存储这些email地址,因为set集合不允许存储重复的元素class Solution { public int numUniqueEmails(String[] emails) { Set<String> seen = new HashSet(); f...原创 2018-10-30 18:40:06 · 737 阅读 · 1 评论 -
leetcode-905-数组排序
法一:对数组进行排序,将所有的偶数放到奇数的前面,我们可以考虑使用两个for循环,先将所有的偶数存到数组中,在将所有的奇数存进去class Solution { public int[] sortArrayByParity(int[] A) { int[] B = new int[A.length]; int t = 0; for(...原创 2018-10-30 19:09:47 · 217 阅读 · 0 评论 -
LeetCode-461-汉明距离
韩明距离就是两个二进制数相应位置不同的个数class Solution { public int hammingDistance(int x, int y) { int i = x ^ y; int count=0; while (i != 0) { ++ count; i = (i-1)& i; }...原创 2018-10-30 19:38:19 · 249 阅读 · 0 评论 -
LeetCode第一题
要求是:从给定数组中找到两个值,使得他们的和等于目标值target,返回的是这两个数的索引值此处可以用HashMap将nums数组中的值存到key里面,而value存储的是索引位置值步骤:创建一个HashMap,和一个只存两个数的数组 循环遍历给定数组nums:如果hashmap中含有给定目标值nums[i],则用get来获取索引值;否则将数组的值存到HashMap中 返回re...原创 2018-08-12 20:32:19 · 386 阅读 · 0 评论