2022-01-13 747至少是其他数字两倍的最大数 哈希表

2022-01-14  本文已影响0人  16孙一凡通工

送分题不做赘述。
Go版本:

func dominantIndex(nums []int) int {
    if(len(nums)<2){
        return 0;
    }
    max,loc:=math.MinInt64,0;
    for  key,_:=range nums{
        if(nums[key]>max){
            max=nums[key];
            loc=key;
        }

    }
    count:=0;
      for  key,_:=range nums{
        if(nums[key]*2>max){
          count++;
        }

    }
    if count>1{
        return -1;
    }
    return loc;
}

剑指 Offer II 032. 有效的变位词

给定两个字符串 st ,编写一个函数来判断它们是不是一组变位词(字母异位词)。
注意:*s**t*中每个字符出现的次数都相同且字符顺序不完全相同,则称 *s**t*互为变位词(字母异位词)。

哈希表一套就行了
Go版本

func isAnagram(s string, t string) bool {

 if(len(s)!=len(t)){
     return false;
 }
 map1,map2:=make(map[int]int),make(map[int]int);

 count:=0;
 for i:=0;i<len(s);i++{
     if s[i]==t[i]{
         count++;
     }
     map1[int(s[i]-'a')]++;
     map2[int(t[i]-'a')]++;
 }
 if count==len(s){
     return false;
 }
 for key,_:=range map1{
     if(map1[key]!=map2[key]){
         return false;
     }
    
 }
 return  true;


}

字符串数组 strs 排序:// sort.Sort(sort.StringSlice(strs));
单个字符串 value排序: s := strings.Split(value, ""); sort.Strings(s) ; value_s:=strings.Join(s, "")

上一篇下一篇

猜你喜欢

热点阅读