企业高端网站建设需要注意哪些事项,临淄房产信息网123,动画设计与制作教案,太原推广公司电话69. x 的平方根
1.题目#xff1a;
给你一个非负整数 x #xff0c;计算并返回 x 的 算术平方根 。
由于返回类型是整数#xff0c;结果只保留 整数部分 #xff0c;小数部分将被 舍去 。
注意#xff1a;不允许使用任何内置指数函数和算符#xff0c;例如 pow(x, 0.…69. x 的平方根
1.题目
给你一个非负整数 x 计算并返回 x 的 算术平方根 。
由于返回类型是整数结果只保留 整数部分 小数部分将被 舍去 。
注意不允许使用任何内置指数函数和算符例如 pow(x, 0.5) 或者 x ** 0.5 。
示例 1
输入x 4
输出2示例 2
输入x 8
输出2
解释8 的算术平方根是 2.82842..., 由于返回类型是整数小数部分将被舍去。
2.思路
考察二分查找
3.代码
public int mySqrt(int x) {//二分查找int left0,rightx,res-1;while(rightleft){int mid(rightleft)/2;if((long)mid*midx){resmid;leftmid1;}else{rightmid-1;}}return res;}
205. 同构字符串
1.题目
给定两个字符串 s 和 t 判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t 那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符同时不改变字符的顺序。不同字符不能映射到同一个字符上相同字符只能映射到同一个字符上字符可以映射到自己本身。
示例 1:
输入s egg, t add
输出true示例 2
输入s foo, t bar
输出false
2.思路
考察哈希表
使用两个map 保存 s[i] 到 t[j] 和 t[j] 到 s[i] 的映射关系如果发现对应不上立刻返回 false
3.代码 public boolean isIsomorphic(String s, String t) {//map映射//map1:s[i]到t[j]的映射MapCharacter,Character map1new HashMap();//map2:t[j]到s[i]的映射MapCharacter,Character map2new HashMap();for(int i0,j0;is.length();i,j){if(!map1.containsKey(s.charAt(i))){map1.put(s.charAt(i),t.charAt(j));}if(!map2.containsKey(t.charAt(j))){map2.put(t.charAt(j),s.charAt(i));}if(map1.get(s.charAt(i))!t.charAt(j) || map2.get(t.charAt(j))!s.charAt(i)){return false;}}return true;}
1002. 查找共用字符
1.题目
给你一个字符串数组 words 请你找出所有在 words 的每个字符串中都出现的共用字符 包括重复字符并以数组形式返回。你可以按 任意顺序 返回答案。
示例 1
输入words [bella,label,roller]
输出[e,l,l]示例 2
输入words [cool,lock,cook]
输出[c,o]
2.思路
哈希字母求频率
将字符映射到数组也就是哈希表的索引下标上因为字符a到字符z的ASCII是26个连续的数值所以字符a映射为下标0相应的字符z映射为下标25。 统计出搜索字符串里26个字符的出现的频率然后取每个字符频率最小值最后转成输出格式
注意
基本数据类型之间的运算规则
byte、char、short - int - long - float - double
注意byte、char、short这三种数据类型做运算时结果为int型。
public static void main(String[] args) { char one a; //97 char two b; //98 int three 10; String str hello; System.out.println(one three); //107 System.out.println(one str); //ahello System.out.println(three str); //10hello System.out.println(one 2); //99 System.out.println(one two); //195}
从小到大自动类型提升
从大到小强制类型转换
3.代码
public ListString commonChars(String[] words) {ListString resultnew ArrayList();int[] hashnew int[26];//字符串数组的每个元素是由字符串组成length()方法。数组length属性。for(int i0;iwords[0].length();i){hash[words[0].charAt(i)-a];}for(int i1;iwords.length;i){int[] hashOthernew int[26];for(int j0;jwords[i].length();j){hashOther[words[i].charAt(j)-a];}for(int k0;khash.length;k){hash[k]Math.min(hash[k],hashOther[k]);}}for(int i0;i26;i){while(hash[i]!0){result.add(String.valueOf((char)(ia)));hash[i]--;//每个字符可能重复出现}}return result;}