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

[数据结构] ArrayList与顺序表(下)

一. ArrayList 的具体使用

1.简单的洗牌算法

①买一副牌
public class Card {public int rank;public String suit;public Card(int rank, String suit) {this.rank = rank;this.suit = suit;}@Overridepublic String toString() {return "["+suit+"" +rank+"]";}
}
  • 定义了面值(rank)和花色(suit)

import java.util.ArrayList;
import java.util.List;public class CardDemo {public static final String[] Cardsuit = {"♥","♠","♣","♦"};public static List<Card> BuyCard(){List<Card> cardList = new ArrayList<>(52);for (int i = 0; i < 4; i++) {for (int j = 1; j <= 13 ; j++) {String suit = Cardsuit[i];int rank = j;Card card = new Card(rank,suit);cardList.add(card);}}return cardList;}public static void main(String[] args) {List<Card> deck = BuyCard();System.out.println(deck);}
}
  • 定义了花色的数组
  • 用二维数组给每一张牌赋值 , 最后用顺序表存储
②洗牌
    private static void swap(List<Card> deck,int i,int j){Card t = deck.get(i);deck.set(i,deck.get(j));deck.set(j,t);}private static void shuffle(List<Card> deck){Random random = new Random();for(int i=deck.size()-1;i>0;i--){int j = random.nextInt(i);swap(deck,i,j);}}
  • j 为 (0,i-1) 之间的随机数 , 交换 i 和 j 下标的元素

    public static void main(String[] args) {List<Card> deck = BuyCard();System.out.println(deck);shuffle(deck);System.out.println(deck);}

2.杨辉三角

[题目] : 给定一个非负整数 numRows生成「杨辉三角」的前 numRows 

            在「杨辉三角」中,每个数是它左上方和右上方的数的和

class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> ret = new ArrayList<>();//类似一个二维数组List<Integer> List0 = new ArrayList<>();List0.add(1);//处理第一行的1ret.add(List0);//在二维数组中添加第一个元素for(int i = 1;i<numRows;i++){List<Integer> cur = new ArrayList<>();cur.add(1);//每一行的第一个元素1List<Integer> preRow = ret.get(i-1);//记录上一行,以便求出新的元素for(int j = 1;j<i;j++){int val1 = preRow.get(j);//第i-1行,的第j个元素int val2 = preRow.get(j-1);//第i-1行,的第j-1个元素cur.add(val1+val2);//求和}cur.add(1);每一行的最后一个元素1ret.add(cur);}return ret;}
}

http://www.xdnf.cn/news/18938.html

相关文章:

  • STM32——PWR
  • 机器视觉学习-day06-图像旋转
  • KafKa学习笔记
  • 【Day 35】Linux-Mysql错误总结
  • DA14531(Cortex-M0+)之Wake-up Interrupt Controller (WIC)
  • React学习教程,从入门到精通, ReactJS - 安装:初学者指南(3)
  • linux 网络:并发服务器及IO多路复用
  • 如何将yolo训练图像数据库的某个分类的图像取出来
  • element-plus的el-scrollbar显示横向滚动条
  • 使用华为 USG6000防火墙配置安全策略
  • 传输层协议介绍
  • 企业通讯软件以安全为基,搭建高效的通讯办公平台
  • Python篇---返回类型
  • 【论文阅读】PEPNet
  • amis上传组件导入文件接口参数为base64格式的使用示例
  • 计算机三级嵌入式填空题——真题库(22)原题附答案速记
  • 强化学习与注意力机制的AlignSAM框架解析
  • 微算法科技(NASDAQ:MLGO)推出创新型混合区块链共识算法,助力物联网多接入边缘计算
  • [n8n] 工作流数据库管理SQLite | 数据访问层-REST API服务
  • Paimon——官网阅读:Flink 引擎
  • 前端javascript在线生成excel,word模板-通用场景(免费)
  • AbMole小课堂丨详解野百合碱在动物肺动脉高压、急性肺损伤、静脉闭塞肝病造模中的原理及应用
  • Go 语言常用命令使用与总结
  • 微信小程序对接EdgeX Foundry详细指南
  • 云计算学习100天-第31天
  • 从零开始的云计算生活——第五十三天,发愤图强,kubernetes模块之Prometheus和发布
  • 【SpringAI】快速上手,详解项目快速集成主流大模型DeepSeek,ChatGPT
  • 【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件
  • Uniapp中自定义导航栏
  • 如何将iPhone上的隐藏照片传输到电脑