1441. 用栈操作构建数组
class Solution {
public List<String> buildArray(int[] target, int n) {
List<String> list=new ArrayList<>();
if(target.length==0) return list;
int count=1;
int len=0;
while(len!=target.length){
if(target[len]==count){
list.add("Push");
len++;
}else{
list.add("Push");
list.add("Pop");
}
count++;
}
return list;
}
}
445. 两数相加 II
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode t1=l1;
ListNode t2=l2;
Stack<Integer> stack1=new Stack<>();
Stack<Integer> stack2=new Stack<>();
while(t1!=null){
stack1.push(t1.val);
t1=t1.next;
}
while(t2!=null){
stack2.push(t2.val);
t2=t2.next;
}
int count=0;
int num=0;
ListNode path=null;
while(!stack1.isEmpty()||!stack2.isEmpty()){
int num1=stack1.isEmpty()?0:stack1.pop();
int num2=stack2.isEmpty()?0:stack2.pop();
num=num1+num2+count;
count=num/10;
num=num%10;
ListNode node=new ListNode(num);
node.next=path;
path=node;
}
if(count==1){
ListNode node=new ListNode(1);
node.next=path;
path=node;
}
return path;
}
}
2126. 摧毁小行星
class Solution {
public boolean asteroidsDestroyed(int mass, int[] asteroids){
long w=mass;
Arrays.sort(asteroids);
for(int i=0;i<asteroids.length;i++){
if(w>=asteroids[i]){
w+=asteroids[i];
}else{
return false;
}
}
return true;
}
}
2125. 银行中的激光束数量
class Solution {
public int numberOfBeams(String[] bank) {
int n=bank.length;
if(n==1) return 0;
int slow=0;
int fast=1;
int sum=0;
while(fast!=n){
int temp1=0;
int temp2=0;
while(fast<n-1&& countOne(bank[slow])==0){
slow++;
fast++;
if(fast==n-1){
break;
}
}
while(fast<n-1&& countOne(bank[fast])==0){
fast++;
if(fast==n-1){
break;
}
}
for(int i=0;i<bank[slow].length();i++){
if(bank[slow].charAt(i)=='1') temp1++;
}
for(int i=0;i<bank[fast].length();i++){
if(bank[fast].charAt(i)=='1') temp2++;
}
sum+=temp1*temp2;
slow=fast;
fast+=1;
}
return sum;
}
public int countOne(String s){
int n=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='1'){
n++;
}
}
return n;
}
}