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

2024-06-29 1372阅读

找往期文章包括但不限于本期文章中不懂的知识点:

个人主页:我要学编程(ಥ_ಥ)-CSDN博客

所属专栏:数据结构(Java版)

目录

ArrayList的具体使用 

118. 杨辉三角

扑克洗牌算法 


接上篇:数据结构之ArrayList与顺序表(上)-CSDN博客

ArrayList的具体使用 

118. 杨辉三角

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。

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

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

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]
  • 1 = 2) { int t = list.get(i - 1).get(j) + list.get(i - 1).get(j - 1); list1.set(j , t); } } } return list; } public static void main(String[] args) { List listList = generate(5); for (List list : listList) { for (Integer x : list) { if (x != 0) { System.out.print(x+" "); } } System.out.println(); } } }

    方法一与方法二的区别:

    方法二就是完全对前面代码的改编。因为前面我们在创建一个二维数组的同时是进行了初始化的,所以这里的所有元素都是有初始值的。但我们用顺序表来创建二维数组的时候,如果没有初始化,那么其值就是null,这个是不能参与运算的。因此,我们要手动的置为0,这样就可以参与运算了,否则就会发生异常。

    方法一就是改进了方法二的不足之处。既然你不初始化,在运算时,会发生异常,那么我就把你的范围卡在只参与运算的部分。也就是 j 0; i--) { // 生成[0,i)之间的值,也就是[0,i-1] int index = random.nextInt(i); swap(cardList, index, i); } } private void swap(List cardList, int index, int i) { // 交换index和i下标对应的数组元素 // int tmp = a; a = b; b = tmp; Card tmp = cardList.get(i); // 把i下标的值,改为index下标对应的值 cardList.set(i, cardList.get(index)); cardList.set(index, tmp); }

     发牌

        // 发牌
        // 给3人发5轮牌,每人每轮发一张
        public List dealCards() {
            // 创建一个二维数组
            List listList = new ArrayList();
            for (int i = 0; i  
    

    测试:

    public class Test {
        public static void main(String[] args) {
            // 生成一副牌
            Cards cards = new Cards();
            List cardList = cards.generateCards();
            System.out.println(cardList);
            // 开始洗牌——将牌的顺序打乱
            cards.shuffle();
            System.out.println(cardList);
            // 开始发牌
            List listList = cards.dealCards();
            // 查看结果
            int i = 1;
            for (List list: listList) {
                System.out.print("第"+i+"个人拿到的牌:");
                for (Card x : list) {
                    System.out.print(x+" ");
                }
                i++;
                System.out.println();
            }
        }
    }

     好啦!本期 数据结构之ArrayList与顺序表(下)的学习就到此结束啦!我们下一期再一起学习吧!

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]