leetcode刷题系列第一周

8月23日

771:Jewels and Stones

  • 我的思路:字符串匹配。使用双重循环charAt(i)获取字符位置,判断S和J是否相同。运行结果耗时长。
  • 优秀代码:
int count=0;
for(int i=0;i<S.length();i++){
    char ch=S.charAt(i);
    if(J.indexOf(ch)!=-1){//indexOf()方法获取字符ch在字符串J中第一次出现的位置
        count++;
    }
}
return count;
  • 学习内容:

       char charAt(int index)  用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

       int indexOf(int ch)  返回指定字符在此字符串中第一次出现处的索引。

       int indexOf(int ch, int fromIndex)  返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。

       int indexOf(String str)  返回指定子字符串在此字符串中第一次出现处的索引。

       int indexOf(String str, int fromIndex)  返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

       char toCharArray()  将此字符串转换为一个新的字符数组。

       static String copyValueOf(char[] data)  返回指定数组中表示该字符序列的 String。


709. To Lower Case

  • 学习内容:

      String replace(char oldChar, char newChar)  返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。


804. Unique Morse Code Words

  • 我的思路:
  • 优秀代码:
  • 学习内容:

8月24日 

461. Hamming Distance

  • 我的思路:x、y异或运算后转换成字符串,计算值为1的字符数目。
  • 优秀代码:使用Integer.bitCount(x^y).
  • 学习内容:Integer.bitCount(int i)返回i的二进制表示中值为1的个数。

832. Flipping an Image

  • 我的思路:第一步根据数组坐标交换值,第二步然后更改0和1的值。
  • 优秀代码:思路一样。第一种将两个步骤写成函数调用;第二种是将两个步骤合并一起或使用条件运算符。
for(int i = 0; i < A.length; i++) {
    for(int j = 0; j < A.length; j++) {
    	reverse[i][A.length - 1 - j] = 1 - A[i][j];
    }
}
  • 学习内容:

        条件运算符  a=x?b:c;//如果x为真,a=b;否则a=c;


657. Judge Route Circle

  • 我的思路:我把这道题做成了字符串匹配,UD、LR都有即消除。
  • 优秀代码:
//one
int alph[]=new int[26];
for(char c: moves.toCharArray()){
    ++alph[c-'A'];
}
return (alph['L'-'A']==alph['R'-'A'] && alph['U'-'A']==alph['D'-'A']);

//two
int x=0,y=0;
for(char c: moves.toCharArray()){
    switch(c){
        case 'U': y++;break;
        case 'D': y--;break;
        case 'L': x++;break;
        case 'R': x--;break;
    }
}
return (x==0)&&(y==0);
  • 学习内容:要学会将难化易,看了别人的代码很简单变成算术题。长时间不写代码的代价啊,大二三的时候绝对这种题,哎~刚开始刷题,加油!

8月25日

617. Merge Two Binary Trees

  • 学习内容:递归的使用。边界情况使用if判断,会节约时间。

852. Peak Index in a Mountain Array

  • 我的思路:考虑到矩阵的山顶不一定靠近中间,使用顺序查找做的这道题,没有使用二分查找,但样例多时二分查找更快吧。

猜你喜欢

转载自blog.csdn.net/u013814184/article/details/82023910