输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
Java 的HashMap设置的比C++繁琐,如果直接用HashMap会写很多行程序,所以这里用数组简化。
public class Solution { public int FirstNotRepeatingChar(String str) { int[] hashmap = new int[256]; for(int i=0;i<str.length();i++){ hashmap[str.charAt(i)-'A']++; } for(int i=0;i<str.length();i++){ if(hashmap[str.charAt(i)-'A']==1) return i; } return -1; } }