当前位置: 首页 > news >正文

力扣-数据结构-7【算法学习day.78】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.链表随机节点

题目链接:382. 链表随机节点 - 力扣(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 {int[] arr = new int[10005];int count = 0;public Solution(ListNode head) {for(ListNode i = head;i!=null;i=i.next){arr[count++] = i.val;}}public int getRandom() {Random r = new Random();int number=r.nextInt(count);return arr[number];}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(head);* int param_1 = obj.getRandom();*/

2.扁平化多级双向链表

题目链接: 430. 扁平化多级双向链表 - 力扣(LeetCode)

题面:

分析:用数组递归存储数值然后构造双向链表更加简单些 

代码:

/*
// Definition for a Node.
class Node {public int val;public Node prev;public Node next;public Node child;
};
*/class Solution {int[] arr = new int[1005];int count = 0;public Node flatten(Node head) {if(head==null)return head;for(Node i = head;i!=null;i=i.next){arr[count++] = i.val;if(i.child!=null){recursion(i.child);}}Node fhead = new Node();Node pre = fhead;for(int i = 0;i<count;i++){Node node = new Node(arr[i]);pre.next=node;node.prev=pre;pre = node;}// for(Node i = fhead.next;i!=null;i=i.next){//     System.out.println(i.val);// }Node ans = fhead.next;ans.prev = null;return ans; }public void recursion(Node head){for(Node i = head;i!=null;i=i.next){arr[count++] = i.val;if(i.child!=null){recursion(i.child);}}}
}

后言

上面是数据结构相关的习题,下一篇文章会将其他相关的习题。 

http://www.lryc.cn/news/512626.html

相关文章:

  • 【潜意识Java】Java中深入解析抽象类与接口的差异的完整笔记总结【保姆级详细教程】
  • 【Flink运行时架构】系统构架
  • uni-ui样式修改
  • 【linux板卡】lubancat通过vnc远程访问桌面
  • SQLiteDataBase数据库
  • STM32 高级 物联网通讯之蓝牙通讯
  • react中实现拖拽排序
  • 【华为OD-E卷-AI处理器组合100分(python、java、c++、js、c)】
  • 语音识别基础算法——动态时间规整算法
  • 模型工作流:自动化的模型内部三角面剔除
  • 解读一个新建的 Spring Boot 项目
  • Vue多页面路由与模版解析
  • Python爬虫(二)- Requests 高级使用教程
  • 并联带阻滤波器带通滤波器对幅值和相位的影响(IIR)
  • 攻防世界web新手第五题supersqli
  • vue3学习笔记(10)-$subscribe,store组合式写法
  • 操作系统论文导读(八):Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个
  • 计算机网络与通信复习
  • 【Scala】图书项目系统代码演练3.1/BookService
  • 人工智能基础软件-Jupyter Notebook
  • C++ 设计模式:模板方法(Template Method)
  • GDPU Vue前端框架开发 跨年大礼包
  • 搭建一个高效且安全的APP分发平台
  • Leetcode打卡:二叉树中的链表
  • 大数据技术-Hadoop(四)Yarn的介绍与使用
  • 算法 class 004(选择,冒泡,插入)
  • linux---awk命令详细教程
  • 一个通用的居于 OAuth2的API集成方案
  • STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
  • QML学习(五) 做出第一个简单的应用程序