力扣-数据结构-6【算法学习day.77】
前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!
习题
1.链表中的下一个更大节点
题目链接:1019. 链表中的下一个更大节点 - 力扣(LeetCode)
题面:
分析:这题可以先把所有值存起来然后从后往前遍历,记录遍历到的最大值和最大值所在的索引,如果遍历到的当前值大于或者等于最大值,说明其右边不存在严格大于该索引值的数,ans[i] = 0,并更新最大值以及索引,如果小于,就从当前位置+1出发,一直到最大索引,找到第一个比其大的
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public int[] nextLargerNodes(ListNode head) {
int count = 0;
int[] arr = new int[10005];
for(ListNode i = head;i!=null;i=i.next){
arr[count++] = i.val;
}
int max = -1;
int maxIndex = -1;
int[] ans = new int[count];
for(int i = count-1;i>=0;i--){
if(arr[i]>=max){
max = arr[i];
maxIndex = i;
ans[i] = 0;
}else{
for(int j = i+1;j<=maxIndex;j++){
if(arr[j]>arr[i]){
ans[i] = arr[j];
break;
}
}
}
}
return ans;
}
}
2.从链表中删去总和值为零的连续节点
题目链接: 1171. 从链表中删去总和值为零的连续节点 - 力扣(LeetCode)
题面:
分析:可以先把值取出来,然后双重循环暴力标记可以和为零的连续节点,最后构建链表返回
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeZeroSumSublists(ListNode head) {
// if(head==null||(head.next==null&&head.val==0))return null;
int[] arr = new int[1005];
int count = 0;
for(ListNode i = head;i!=null;i=i.next){
arr[count++] = i.val;
}
int[] flag = new int[count];
for(int i = 0;i<count;i++){
if(flag[i]==1)continue;
int sum = 0;
for(int j = i;j<count;j++){
if(flag[j]==1)continue;
sum+=arr[j];
if(sum==0){
for(int k = i;k<=j;k++){
flag[k] = 1;
}
i = -1;
break;
}
}
}
ListNode fhead = new ListNode();
ListNode pre = fhead;
for(int i = 0;i<count;i++){
if(flag[i]==1)continue;
ListNode node = new ListNode(arr[i]);
pre.next = node;
pre = node;
}
return fhead.next;
}
}
后言
上面是数据结构相关的习题,下一篇文章会将其他相关的习题。