今天是复习day3
碎碎念:啊啊啊啊啊啊啊怎么有这么多人浏览,比我前面的知识点浏览量还高,都不好意思偷懒了。
另外今天解决了我前端的问题,本来是想用vue框架写的,还是高估了我自己的能力,最后还是html+css了,菜鸡在努力,
快出考研成绩啦,刷刷题来静静心,又害怕考得不好进不来复试,又害怕进复试了,复试成绩不好,没时间春招,但是包子们要加油呀,另外淀粉表示今天比赛了么????????
java申请数组的几种方法:
-
申明数组时指定元素个数
int[] a=new int [2];
-
声明数组名开辟空间并赋值
int[] a; a=new int[]{0,0};
-
声明并赋值
int[] a={0,0};
-
多维数组
int[][] a=new int[2][2]; int[][] a; a= new int[2][2]={0,0,0,0}; int[2][2] a={0,0,0,0};//也可以不要全部赋值
/*java判长用length*/
class Solution {
public int[] twoSum(int[] nums, int target) {
int a[]=new int [2];//申请一个数组用来存放返回的数据
//两个个for用来遍历所有的值
for(int i=0;i<nums.length-1;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
a[0]=i;
a[1]=j;
return a;//找到后返回a
}
}
}
return a;
}
}
/*c++判长用size,注意,c++的方法最后需要;来结束,ruturn多数据不需要另外申请空间*/
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int i,j;
for(i=0;i<nums.size()-1;i++){
for(j=i+1;j<nums.size();j++){
if(nums[i]+nums[j]==target){
return {i,j};
}
}
}return {i,j};
};
};
//虽然思想还是别人的,但是感觉有了自己的思考
class Solution {
public:
bool isPalindrome(int x) {
long long a=0;//用于记录新数据
int num=x;//使用num,防止x被修改
if(x<0){return false;}//负数带符号必不是
while(num){
a=a*10+num%10;//a*10往前移一位+x的下一位
num=num/10;
}
return a==x;//
}
};
-
今天面试有提到hashmap,准备用一下<key,map>
class Solution { public: int romanToInt(string s) { /*根据题目,时通过字符转换成数据的所以用了char型转int型*/ map<char,int> a={ {'I',1}, {'V',5}, {'X',10}, {'L',50}, {'C',100}, {'D', 500}, {'M', 1000} };//是个初始化,记得要;啊啊啊啊啊很重要 /*判断大小来决定+-*/ int sum=0; for(int i=0;i<s.size();i++){ if(a[s[i]]<a[s[i+1]]){ sum=sum-a[s[i]]; }else{ sum=sum+a[s[i]]; } } return sum; } };
java中遍历hashmap的方法Java ArrayList | 菜鸟教程 (runoob.com)
//定义
HashMap a=new HashMap();
a.put("I","1");
a.put("V","5");
a.put("X","10");
a.put("L","50");
a.put("C","100");
a.put("D","500");
a.put("M","1000");
1. keySet()取出值,再遍历,加强for循环
Set keyset = a.keySet();
for(Object key:keyset){
System.out.println(key+"-"+a.get(key));
}
2. entrySet() 获取key-value的值,在for循环
Set set = a.entrySet();
for(Object key:set){
Map.Entry entry = (Map.Entry) key;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
-
最长公共前缀
class Solution { public: string longestCommonPrefix(vector<string>& strs) { int size = strs.size(); if (!size) {//长度为0时必无 return ""; } int res = strs[0].size();//res,最好是能记录字符串长度最短的记录字符串大小 for (int i = 1; i < size; i++) { for (int j = 0; j < res; j++) { if (strs[0][j] != strs[i][j]) {//比较两个字符串二维数组 res = j; break; } } } return strs[0].substr(0, res);//substr拼接 } };
class Solution {
public String longestCommonPrefix(String[] strs) {
/*如果有空字符,就没有共同前缀 */
if(strs.length == 0)
return " ";
/*用一个字符串来比较 */
String a = strs[0];
/**for循环来一次比较,并在跳出前记录以及比较过的字符串 */
for(int i =1;i<strs.length;i++) {
int j=0;
for(;j<a.length() && j < strs[i].length();j++) {
if(a.charAt(j) != strs[i].charAt(j))
{
break;
}
}
a = a.substring(0, j);//j用来记录相同的字符个数,
if(a.equals("")){
return "";
}
}return a;//输出字符
}
}