自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【LeetCode】575. Distribute Candies

题目:简述题目:    给了一组不同种类的糖果,要把这些糖果平均分给兄妹二人,问最多可以拿到多少种不同类的糖果思路:    首先计算出共有多少类(k)的糖果以及每人可以分到多少个糖果(n),如果k<= n,那么最多有k种,否则即为n种代码:    import java.util.HashSet;import java.util.Set;public class distribute...

2018-07-11 22:02:14 169

原创 【LeetCode】821. Shortest Distance to a Character

题目:简述题目:    求一个数组,一次是S中的每个字母距离字符C的最短距离思路:    先记录字符C在S中的位置,然后遍历S,依次计算每个字符距离每个C的距离,取最小的那一个即可代码:public class shortestToChar821 { public static int abs(int n) {//求绝对值 if(n >= 0) return n; else ...

2018-07-09 22:22:41 168

原创 【LeetCode】806. Number of Lines To Write String

题目:简述题目:    题目中width数组按照字母表顺序依次给了每个字母所占用的长度,然后给出一个字符串,问存储这个字符串需要用多少行(每行的最大长度为100,一个字母不能够分行存放)思路:    遍历字符串,依次存放,并计算长度。(提示:要判断字符串是否为空,若为空则为0行,否则至少有1行)代码:public class numberOfLines806 { public static...

2018-07-07 10:00:52 172

原创 【LeetCode】852. Peak Index in a Mountain Array

题目:简述题目:    题目的要求其实就是找出数组中的一个“中间数”,也就是整个数组中的一个“峰值”的index思路:    1、依次遍历,然后找出那个A[i] >= A[i-1] && A[i] < A[i+1]的i值,但时间复杂度为O(n)    2、二分查找,如果A[mid] < A[mid+1] ,就在后半段找,反之就在前半段找,时间复杂度为O(log(n...

2018-07-02 13:58:22 227

原创 【LeetCode】832. Flipping an Image

题目:简述题目:    反转图像    首先向矩阵的每一行都反转,然后01反转,得到目标矩阵思路:    遍历,按行反转,01反转可以利用异或运算(与1异或)代码:public class flipAndInvertImage832 { public static int[][] flipAndInvertImage(int[][] A) { int[][] output ...

2018-07-01 10:05:36 181

原创 【LeetCode】804. Unique Morse Code Words

题目:简述题目:    题目中给出了一个摩斯密码的对应数组,也就是每个字母分别对应的摩斯密码,然后给出一组单词,求最终不同的摩斯密码的个数(因为有些字母的摩斯密码的组合可能会相同)思路:    遍历,然后生成每个单词的莫斯密码,存储,求个数    我一开始用了hashmap,还统计了每个摩斯密码出现的个数,但是其实并么有这个必要,只需要知道一共有多少个不同的就行了,所以后来改用了hashset,可...

2018-07-01 09:23:55 207

原创 【LeetCode】27. Remove Element

题目:简述题目:    题目要求将nums数组中的值为val 的数去掉(也可以不去掉),然后将其余的数放在前n位(n = nums.lenth - val的个数),最终可以返回这个新的不包含val的数组思路:方法1:统计出现的次数,然后依次往后遍历,替换(其实这个方法很笨。)public class removeElement27 { public static int removeEle...

2018-06-30 09:42:23 134

原创 【LeetCode】125. Valid Palindrome

题目:简述题目:    其实就是判断字符串是不是回文,也就是说这个字符串是不是正着念反着念都一样。这个题目是要求,不考虑符号,只看字母和数字。思路:    建一个列表或者数组吧(不过数组可能不太行,因为我的数组显示超时了。。),然后把满足要求的字符(字母和数字)放入列表中,在放入前做一个筛选,直接将小写字母和数字放进去,当遇到大写字母时,做一个转换,转换成小写字母再存进去。    挺重要的一个要注...

2018-06-29 17:17:37 117

原创 【LeetCode】387. First Unique Character in a String

题目:简述题目:    找出字符串s中第一个没有重复出现的字符,并返回其index。如果没有,则返回-1思路:    将字符串先遍历一次,并将其中出现的字符做一个统计,然后再遍历一次,如果出现了一个字符的统计出现次数为1,那么直接返回index,否则返回-1import java.util.ArrayList;import java.util.HashMap;import java.util....

2018-06-28 22:57:28 157

原创 【LeetCode】88. Merge Sorted Array

题目:简述:    题目的要求,是把两个已经排好的序的数组,分别取前m、n个数按照顺序存放在nums1中思路:    因为nums1是足够大小来存放的,所以可以直接从大到小来存储,而且不用担心会把要用到的数值覆盖掉代码:import java.util.ArrayList;public class mergeSortedArray88 { public static void merge(...

2018-06-27 15:29:52 113

原创 【LeetCode】70. Climbing Stairs

题目:简述题目:    题目是说,你可以走一步或者两步,现在给定总步数,求一共有多少种走法思路:       n = 1,res = 1;       n = 2 , res = 2;    之后的每一步就可以由两个部分组成“还差一步到目的地”和“还差两步到目的地”,也就是说:climbStairs(n) = climbStairs(n - 1) + climbStairs(n - 2);但是如果...

2018-06-27 11:15:37 114

原创 【LeetCode】28. Implement strStr()

题目:简述题目:    如果某一个字符串为空,则返回0;若字符串needle不是字符串haystack的子串,则返回-1;若是子串,则返回开始位置的下标思路:    方法1:用函数haystack.contains(needle)来判断是否是子串,如果不是直接返回-1,如果是,则循环找出开始位置的下标。    class Solution { public int strStr(Strin...

2018-06-27 10:31:54 170

原创 【LeetCode】389. Find the Difference

题目:翻译:    题目的意思是,将字符串s随意打乱后,在任意位置加入一个别的字符,然后形成字符串t,找出t中比s中多出来的那一个字符思路:    其实我之前做这道题目用的cpp,用hashmap,key值为字符,value为该字符的出现次数,但是java好像不能自动统计,不过每次put如果key值相同,那个新的value可以覆盖旧的value值的。因此我做这道题目的思路就是,先把s中的每个字符做...

2018-06-26 16:12:11 140

原创 【LeetCode】20. Valid Parentheses

题目:题目的大致意思就是要判断括号用的是否合理。思路:这个是有参考别人的代码首先将开始括号存入list中,在出现右括号时,然后依次从列表中取出左括号,并判断是否匹配,若不匹配则不正确,否则就将列表中的这一项删除,匹配下一项逐步判断。代码:import java.awt.List;import java.util.ArrayList;public class valid_Parenthese...

2018-06-26 14:23:05 165

原创 【LeetCode】two_sum

写在前面:       之前因为项目、课程各种原因,偷懒了很久,现在基本大作业结束了,过一段时间要去实习了,所以一定一定要坚持继续刷题,本来是习惯cpp的,后来因为很多课程用到java,找实习也发现java工程师的需求大过cpp开发工程师,所以转用java了,几乎是从头开始,一定要坚持,一定要加油!题目:思路:方法1:简单的两层循环,找到nums[i] + nums[j] = target 的 i...

2018-06-26 09:03:28 129

原创 【LeetCode】485. Max Consecutive Ones

题目:时间复杂度O(n)代码:#include <iostream> #include <vector>using namespace std;class Solution {public: int findMaxConsecutiveOnes(vector<int>& nums) { int res = 0; i...

2018-03-31 19:20:17 127

原创 【LeetCode】292. Nim Game

题目:解释:Nim游戏是典型的博弈游戏。这道题目乍一看很难,觉得好像无从下手,但是可以通过做几组分析来找一下规律,会更有利于这道题目的解答。n = 1 时,第一个人取1个,必胜n = 2 时,第一个人取2个,必胜n = 3 时,第一个人取3个,必胜n = 4 时,无论第一个人取几个,都不会胜(题目中也有给提示)【那么这里我们可以先做一个标记:被留给4个石子的那个人一定不会获胜】 n = 5 时,第...

2018-03-31 18:13:48 156

原创 【LeetCode】762. Prime Number of Set Bits in Binary Representation

题目:题目解释:这道题的意思是要求[L,R]内的数,其二进制数表示时,1的个数是否为素数,若为素数则满足条件,个数+1代码:#include <iostream> #include <vector>#include <array>#include <string>#include <unordered_map>#include...

2018-03-26 09:29:35 217

原创 【LeetCode】693. Binary Number with Alternating Bits

题目:思路:将数字转化为二进制存入数组,依次比较即可代码:#include <iostream> #include <vector>#include <array>#include <string>using namespace std;class Solution {public: bool hasAlternatingBi...

2018-03-22 12:22:23 140

原创 【LeetCode】521. Longest Uncommon Subsequence I

题目:提示:题目就是想得那么简单,不要想太多思路:如果a == b,那么肯定不存在最长公共子序列否则,最长公共子序列的长度即为最长的字符串代码:#include <iostream> #include <vector>#include <array>#include <string>using namespace std;class S...

2018-03-22 10:52:11 159

原创 【LeetCode】496. Next Greater Element I

题目:思路:我的做法是现在nums2中找到nums1的元素,然后依次往后遍历,找到第一个比该元素大的数,存起来,查nums1中的下一个元素。代码:#include <iostream> #include <vector>#include <array>using namespace std;class Solution {public: ve...

2018-03-22 09:56:33 170

原创 【LeetCode】566. Reshape the Matrix

题目:思路:先判断元素总数,不同则返回原数组          至于不同位置的元素则根据每行的个数即列数来判断 class Solution {public: vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) { in...

2018-03-21 13:54:07 135

原创 【LeetCode】561. Array Partition I

题目:思路1:先排序,然后a[2n]的和最小#include <iostream> #include <vector>using namespace std;class Solution {public:int Mid(vector<int>& a,int low,int high){ int pivot = a[low]; while...

2018-03-17 11:33:45 148

原创 【LeetCode】796. Rotate String

题目:思路:这道题目关键在思路吧,没什么想法的话,这里先给一个提示:string str = A + A,先思考一下然后再看答案代码。下面贴代码,一些解释写在代码注释里#include <iostream>#include <vector>#include <algorithm>#include <string>using namespace...

2018-03-13 17:55:35 741

原创 【LeetCode】557. Reverse Words in a String III

题目:这个题目和【344】题很类似,算是一个进阶,主要难点在于找到单词分割点“空格”的位置,然后进行反转即可#include <iostream>#include <vector>#include <algorithm>#include <string>using namespace std;class Solution {public...

2018-03-12 09:51:59 141

原创 【LeetCode】682. Baseball Game

题目:思路:首先题目是要做一个计分系统,我个人认为这道题目的难度在于1、理解计分方式 2、对vector的熟悉程度,vector的函数特性可以很简化这道题,如pop_back#include <iostream>#include <vector>#include <string>using namespace std;class Solution {...

2018-03-11 11:28:05 149

原创 【LeetCode】412. Fizz Buzz

题目:这道题有点类似我们的过“七”游戏,不过更简单些,只是倍数需要替换。思路就是一次遍历,依次判断并存入res中,最后输出即可(我没有想到什么更简单的方法,查了一些答案也都差不多)【如果找到更好的方法会补充进来】#include <iostream>#include <vector>#include <algorithm>#include <stri...

2018-03-10 10:15:13 298

原创 【LeetCode】669. Trim a Binary Search Tree

题目:修剪二叉树题目要求:修剪掉在[L,R]之外的节点。思路:递归从根节点出发,若根节点 < L,则保留右子树,抛弃左子树                    若根节点 > R ,则保留左子树,抛弃右子树                    特殊情况考虑之后,则需要左右子树遍历 struct TreeNode { int val; TreeNode *left; ...

2018-03-08 21:07:59 217

原创 【LeetCode】344. Reverse String

题目:这道题 不难,但是要看更好的方法s1:自己写了很笨的方法#include <iostream>#include <vector>using namespace std;class Solution {public: string reverseString(string s) { vector<char> res; ...

2018-03-08 11:36:26 121

原创 【LeetCode】476. Number Complement

题目:求补数思路:首先,理解一下5 --> 1012 --> 0105 + 2 = 111那么已知5,要求5的补数就需要知道111,也就是1000-1(此处为二进制表示)代码如下#include <iostream>#include <unordered_map>#include <vector>#include <array>u...

2018-03-07 21:29:17 154

原创 【LeetCode】728. Self Dividing Numbers

题目:自除数思路:利用除以10的商和余数,依次获取每一位上的数字,然后做出相应的判断即可【需要注意的是求商和取余的顺序问题】#include <iostream>#include <vector>using namespace std;class Solution {public: vector<int> selfDividingNumber...

2018-02-13 19:57:08 240

原创 【LeetCode】657.Judge Route Circle

题目:有一个机器人在原点,现在给他一个移动序列,判断该机器人运动后是否回到原点。也就是说,机器人上下and左右移动的距离是否分别相等简化就是判断“L”“R”出现的次数是否相等,“U”“D”出现的次数是否相等#include <iostream>#include <unordered_map>using namespace std;class Solution {p...

2018-02-13 18:58:05 208

原创 【LeetCode】461. Hamming Distance

题目是要求二进制数字之间的不同位共有几位,也就是说求x,y异或运算后,有几个1的问题(这里应当灵活应用逻辑运算与异或等,这些运算本身就是基于二进制计算的,不需要十进制转二进制那么麻烦)然后就是统计几个1的问题,记录就好,没有转换为二进制的必要。s1是比较笨的一种方法,但是思路简单更好理解些。s2理解后,其实更简单。主要是用到了一个与操作,n &= n-1;每一次与操作,原数值中的1就减少一...

2018-02-12 18:20:43 138

原创 【LeetCode】217. Contains Duplicate

题目:判断是否有重复值存在以下有5种解法,依次优化s1#include <iostream>#include <unordered_map>using namespace std;class Solution {public: bool containsDuplicate(vector<int>& nums) { bool isCD...

2018-02-11 21:32:52 244

原创 【快排】· 递归

思路:快排的思路就是寻找一个分界点,左边的数均小于右边的。那么如何来找这个分界点呢?例如a[5] = {7,8,6,5,4}7  8  6  5  4l = 0 ; r = 4 a[l] > a[r] swap(a[l] ,a[r])  l++4  8  6  5  7l = 1;  r = 4 a[l] > a[r] swap(a[l] ,a[r])  l++4  7  6  5  ...

2018-02-10 22:14:29 118

原创 【LeetCode】242. Valid Anagram

首先,正确理解题目,题目的意思是说判断t是否是s经过重新排列后得到的字符串,也就是说,s和t具有完全相同的子串。思路:首先判断s.len != t.len,否则false,是则下一步判断,是否含有相同的字符且字符出现个数均相同。这里用到unordered_map,遍历了三次,通过比较得到结果#include <iostream>#include <unordered_map&g...

2018-02-10 20:36:00 114

原创 【LeetCode】349. Intersection of Two Arrays

首先,理解题目。题目的要求是求两个数组的交集。思路:遍历nums1,判断nums2中的数值是否在nums1中存在,存在则输出【注意题目要求是交集,故而不重复输出】#include <iostream>#include <unordered_map>#include <vector>using namespace std;class Solution {...

2018-02-09 22:22:57 128

原创 LeetCode 387. First Unique Character in a String

这道题目思路很简单,遍历,并将s中的字符存在unordered_map中,然后依次匹对其出现次数。若有1,则返回i,否则返回-1#include <iostream>#include <unordered_map>using namespace std;class Solution {public: public: int firstUniqCha...

2018-02-09 20:59:09 113

原创 LeetCode 389. Find the Difference

理解题意很关键。这道题的重点是说,要找出t中,比s的子串多出来的字符,也就是说,如果s="aaa";t="aaaa",那么 res = “a”;#include <iostream>#include <unordered_map>using namespace std;class Solution {public: char findTheDifferen...

2018-02-09 19:56:50 134

空空如也

空空如也

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

TA关注的人

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