class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *head = nullptr, *tail = nullptr;
int carry = 0;
while (l1 || l2) {
int n1 = l1 ? l1->val: 0;
int n2 = l2 ? l2->val: 0;
int sum = n1 + n2 + carry;
if (!head) {
head = tail = new ListNode(sum % 10);
} else {
tail->next = new ListNode(sum % 10);
tail = tail->next;
}
carry = sum / 10;
if (l1) {
l1 = l1->next;
}
if (l2) {
l2 = l2->next;
}
}
if (carry > 0) {
tail->next = new ListNode(carry);
}
return head;
}
};
class Solution {
public:
int reverse(int x) {
int rev = 0;
while (x != 0) {
if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {
return 0;
}
rev = rev * 10 + x % 10;
x /= 10;
}
return rev;
}
};
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)
return false;
else{
vector a;
while(x){
a.push_back(x % 10);
x /= 10;
}
int flag = 1;
for (int i = 0; i < a.size()/2;i++){
if(a[i]!=a[a.size()-i-1]){
flag = 0;
break;
}
}
if(flag)
return true;
else
return false;
}
}
};
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)
return false;
else{
long a=0,b=x;
while(b){
a=a*10+b%10;
b/=10;
}
return a==x;
}
}
};
class Solution {
public:
int romanToInt(string s) {
unordered_map<char, int> a = {//无序map
{‘I’, 1},
{‘V’, 5},
{‘X’, 10},
{‘L’, 50},
{‘C’, 100},
{‘D’, 500},
{‘M’, 1000},
};
int ans = 0;
int n = s.length();
for (int i = 0; i < n;i++){
int value = a[s[i]];
if (i < n - 1 && value < a[s[i + 1]])
ans -= value;
else
ans += value;
}
return ans;
}
};
class Solution {
public:
string longestCommonPrefix(vector& strs) {
if(!strs.size())
return “”;
string ans = strs[0];
for (int i = 1; i < strs.size();i++){
string s = ans;
ans = “”;
for (int j = 0; j < strs[i].size(); j++){
if(s[j]==strs[i][j])
ans += s[j];
else
break;
}
if(ans==“”)
break;
}
return ans;
}
};
class Solution {
public:
bool isValid(string s) {
stack q;
int n = s.size();
for (int i = 0; i < n;i++){
if(s[i]‘(’||s[i]‘{’||s[i]==‘[’||q.empty())//越界访问注意!!!
q.push(s[i]);
else{
if(s[i]‘]’&&q.top()‘[’)
q.pop();
else if(s[i]‘}’&&q.top()‘{’)
q.pop();
else if(s[i]‘)’&&q.top()‘(’)
q.pop();
else
q.push(s[i]);
}
}
if(q.empty())
return true;
else
return false;
}
};
最后
一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。
这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。
请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析
OOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。
这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。
[外链图片转存中…(img-jwkS1tnu-1719197733712)]
请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析