顺序表oj题目

编程入门 行业动态 更新时间:2024-10-14 12:28:07

<a href=https://www.elefans.com/category/jswz/34/1771364.html style=顺序表oj题目"/>

顺序表oj题目

顺序表oj题目

  • 杨辉三角
  • 洗牌算法
    • 扑克牌的实体类
    • 洗牌算法
    • 测试类

杨辉三角

public class SanJiao {public static void main(String[] args) {ArrayList<ArrayList<Integer>> arrayList=new ArrayList<>();ArrayList<Integer> arrayList1=new ArrayList<>();arrayList1.add(1);arrayList.add(arrayList1);for(int i=1;i<6;i++){ArrayList<Integer> arrayList2=new ArrayList<>();arrayList2.add(1);ArrayList<Integer> arrayList3=arrayList.get(i-1);for(int j=1;j<i;j++){int ans=(arrayList3.get(j-1)+arrayList3.get(j));arrayList2.add(ans);}arrayList2.add(1);arrayList.add(arrayList2);}System.out.println(arrayList);}
}

洗牌算法

扑克牌的实体类

public class Card {private String suit;//花色private int rank;//数字public Card(String suit, int rank) {this.suit = suit;this.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;}@Overridepublic String toString() {return suit+":"+rank+" ";}
}

洗牌算法

import java.util.ArrayList;
import java.util.List;
import java.util.Random;/*** @Author 12629* @Description:*/
public class CardDemo {private  final String[] suits = {"♥","♠","♦","♣"};/*** 52张 1-K*      J   Q  K*      11 12 13* @return*/public List<Card> buyCard() {List<Card> cardList = new ArrayList<>();for (int i = 0; i < 4; i++) {for (int j = 1; j <= 13; j++) {Card card = new Card(suits[i],j);cardList.add(card);}}return cardList;}public void shuffle(List<Card> cardList) {Random random = new Random();for (int i = cardList.size()-1; i > 0; i--) {int index = random.nextInt(i);//index  i 交换swap(cardList,i,index);}}private void swap(List<Card> cardList,int a,int b) {Card tmp = cardList.get(a);cardList.set(a,cardList.get(b));cardList.set(b,tmp);/*** tmp = a* a = b* b = tmp*/}/*** 揭牌* 3个人 每个人轮流揭牌5张* @param cardList*/public void getCard(List<Card> cardList) {List<Card> hand1 = new ArrayList<>();List<Card> hand2 = new ArrayList<>();List<Card> hand3 = new ArrayList<>();List<List<Card>> hands = new ArrayList<>();hands.add(hand1);hands.add(hand2);hands.add(hand3);//3个人 轮流抓牌5张 每次揭牌1张for (int i = 0; i < 5; i++) {//j代表人for (int j = 0; j < 3; j++) {Card card = cardList.remove(0);hands.get(j).add(card);}}System.out.println("第1个揭牌如下:");System.out.println(hand1);System.out.println("第2个揭牌如下:");System.out.println(hand2);System.out.println("第3个揭牌如下:");System.out.println(hand3);System.out.println("剩下的牌:");System.out.println(cardList);}}

测试类

import java.util.List;/*** @Author 12629* @Description:*/
public class Test {public static void main(String[] args) {CardDemo cardDemo = new CardDemo();List<Card> cardList =  cardDemo.buyCard();System.out.println("买的牌如下:");System.out.println(cardList);System.out.println("洗牌:");cardDemo.shuffle(cardList);System.out.println(cardList);System.out.println("揭牌:");cardDemo.getCard(cardList);}
}

未完待续。。。。

更多推荐

顺序表oj题目

本文发布于:2023-12-05 11:36:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1664091.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:顺序   题目   oj

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!