杨辉三角,洗牌算法

ops/2024/11/8 16:49:49/

杨辉三角

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

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

public List<List<Integer>> generate(int numRows){List<List<Integer>> ret = new ArrayList<>();List<Integer> row = new ArrayList<>();row.add(1);ret.add(row);for (int i = 0; i < numRows; i++) {List<Integer> curRow = new ArrayList<>();curRow.add(1);List<Integer> prevRow = ret.get(i-1);for (int j = 0; j < i; j++) {int x = prevRow.get(j)+prevRow.get(j-1);curRow.add(x);}curRow.add(1);ret.add(curRow);}return ret;
} 

洗牌算法

import java.util.ArrayList;
import java.util.List;
import java.util.Random;public class CardList {private static final String[] SUITS = {"♦","❤","♠","♣"};public static List<Card> buyCards(){List<Card> list = new ArrayList<>();for (int i = 0; i < SUITS.length; i++) {for (int j = 0; j <= 13; j++) {Card card = new Card(SUITS[i],j);list.add(card);}}return list;}public static void shuffle(List<Card> list){Random random = new Random();for (int i = list.size()-1; i > 0; i++) {int index = random.nextInt(i);swap(list,i,index);}}private static void swap(List<Card> list,int i,int j){Card tmp = list.get(i);list.set(i,list.get(i));list.set(j,tmp);}public static void main(String[] args) {List<Card> list = buyCards();System.out.println(list);shuffle(list);System.out.println(list);List<List<Card>> hand = new ArrayList<>();List<Card> hand1 = new ArrayList<>();List<Card> hand2 = new ArrayList<>();List<Card> hand3 = new ArrayList<>();hand.add(hand1);hand.add(hand2);hand.add(hand3);for (int i = 0; i < 5; i++) {for (int j = 0; j < 3; j++) {Card card = list.remove(0);hand.get(j).add(card);}}}
}
public class Card {private String suit;private int rank;public Card(String suit, int rank) {this.suit = suit;this.rank = rank;}@Overridepublic String toString() {return "Card{" +"suit='" + suit + '\'' +", rank=" + rank +'}';}public String getSuit() {return suit;}public void setSuit(String suit) {this.suit = suit;}public int getRank() {return rank;}public void setRank(int rank) {this.rank = rank;}
}

http://www.ppmy.cn/ops/131981.html

相关文章

符号回归概念

一、符号回归概念 符号回归是一种有监督的机器学习方法&#xff0c;用于发现某种隐藏的数学表达式或函数&#xff0c;以最佳地拟合给定数据集。与传统的回归方法不同&#xff0c;符号回归不仅仅是找到一个数学模型的参数&#xff0c;而是通过搜索和组合基本数学运算符和函数&a…

Scala的访问权限

Scala 中的属性成员、方法和构造器这三种变量可以通过访问控制符控制访问权限。不同的访问控制符可以决定是否可以被外部类访问。 Scala的属性访问权限 有四种访问控制权限&#xff0c;分别为&#xff1a; &#xff08;1&#xff09;默认访问权限。Scala 中的默认访问权限相…

python下载pdf

要下载 PDF 文件并将其保存到本地文件夹中&#xff0c;你可以使用 Python 的 requests 库来发送 HTTP 请求&#xff0c;并使用 os 和 io 库来处理文件操作。以下是一个示例代码&#xff0c;展示了如何从给定的 URL 下载 PDF 文件并将其保存到本地 data 文件夹中&#xff1a; i…

6款IntelliJ IDEA插件,让Spring和Java开发如虎添翼

文章目录 1、SonarLint2、JRebel for IntelliJ3、SwaggerHub插件4、Lombok插件5、RestfulTool插件6、 Json2Pojo插件7、结论 对于任何Spring Boot开发者来说&#xff0c;两个首要的目标是最大限度地提高工作效率和确保高质量代码。IntelliJ IDEA 是目前最广泛使用的集成开发环境…

企业级-实现Redis封装层

作者&#xff1a;fyupeng 技术专栏&#xff1a;☞ https://github.com/fyupeng 项目地址&#xff1a;☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 封装 Redis 客户端Dao层、分布式锁等。 一、介绍 二、代码 DataInitialLoadRunner.java /*** Clas…

masm汇编字符输入换行输出演示

从键盘读取一个字符并换行输出 assume cs:codecode segmentstart:mov ah, 1int 21hmov bl, almov dl, 10 mov ah, 2int 21h mov dl, blmov ah, 2int 21hmov ah, 4chint 21hcode ends end start 效果演示&#xff1a;

2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能

基于matlab-GUI的脉冲响应不变法实现音频滤波功能&#xff0c;输入加噪信号&#xff0c;通过巴特沃斯模拟滤波器脉冲响应不变法进行降噪。效果较好。程序已调通&#xff0c;可直接运行。 下载源程序请点链接&#xff1a;2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能…

dell 服务器 安装 centos 7.9 系统

dell 服务器 安装系统 cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) uname -r 3.10.0-1160.el7.x86_64 固定IP地址 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:0…