首页 > 其他分享 >leetcode刷题记录之25(集合实现)

leetcode刷题记录之25(集合实现)

时间:2022-08-28 22:55:28浏览次数:66  
标签:25 arrayList 节点 链表 add ArrayList 集合 leetcode 刷题

题目描述:

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。

k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

 

官方题解写的很简单移动,换个想法,如果用集合的话,该如何实现这道题目呢?

思路:如果我们把数组中的数据放到集合里的话,那我们肯定要先设定一个反转集合元素的函数,

然后截取集合元素的一个子集合,将其放入到反转函数中,再将剩余的元素放入到其中,集合!

代码如下:

public class reverseKGroup {
    public static void main(String[] args){
        Integer item = 0;
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);
        arrayList.add(6);
    
     System.out.println(arrayList);
     //System.out.println(Reverse(arrayList));
    
System.out.println(fun(arrayList,2)); } public static ArrayList<Integer> fun(ArrayList<Integer> arrayList,int k){ if (k > arrayList.size()){ return null; } ArrayList<Integer> arrayList1 = new ArrayList<Integer>(); for (int i = 0;i<k;i++){ arrayList1.add(arrayList.get(i)); } Reverse(arrayList1); for (int i = k;i<arrayList.size();i++){ arrayList1.add(arrayList.get(i)); } return arrayList1; } public static ArrayList<Integer> Reverse(ArrayList<Integer> arrayList1){ Integer item = 0; for (int i = 0;i<arrayList1.size()/2;i++){ item = arrayList1.get(i); arrayList1.set(i,arrayList1.get(arrayList1.size()-1-i)); arrayList1.set(arrayList1.size()-1-i,item); } return arrayList1; } }

输出结果:

 

 代母目前冗余性太强,以后还会继续优化,这里之暂时给出一个大体的解决方案!

标签:25,arrayList,节点,链表,add,ArrayList,集合,leetcode,刷题
From: https://www.cnblogs.com/99kol/p/16634357.html

相关文章

  • leetcode 斐波那契数列 javascript实现
    写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项(即F(N))。斐波那契数列的定义如下:F(0)=0,  F(1) =1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0......
  • 25.伪善者
    迷雾偷走了颜色想扮演格外深刻寥寥几个人懂得眼看着就要一个人做选择割舍假意它动了声色犬马在适当玩乐无辜者掩饰什么玩命强撑着伪善的资格名额他情绪渐渐失控......
  • leetcode 696. Count Binary Substrings 计数二进制子串(简单)
    一、题目大意给定一个字符串s,统计并返回具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是成组连续的。重复出现(不同位置)的子串......
  • leetcode191:位1的个数
    packagecom.mxnet;publicclassSolution191{publicstaticvoidmain(String[]args){System.out.println(1<<5);}/***编写一......
  • 825周总结
    目录前端一、前端与后端的概念二、前端的核心基础三、超文本传输协议1.四大特性2.数据格式3.响应状态码四、HTML1.简介2.语法3.head内常见标签4.body内部标签5.块级标签和......
  • Educational Codeforces Round 125 D
    D.ForGamers.ByGamers.最近又生病了然后就休息了两天人还真是休息不得直接寄掉了不管是手速还是思维啥的看到这道题很简单的一个变形都没看出来只看出了二分......
  • leetcode198:打家劫舍
    packagecom.mxnet;publicclassSolution198{publicstaticvoidmain(String[]args){}/***你是一个专业的小偷,计划偷窃沿街的房屋。每间......
  • 反转二叉树演练 leetcode |第 6 部分
    反转二叉树演练leetcode|第6部分上一个问题[有效回文演练Leetcode|第5部分上一个问题媒体网](/@nerdhide/valid-palindrome-walkthrough-leetcode-part-5-8......
  • LeetCode 2186. Minimum Number of Steps to Make Two Strings Anagram II
    原题链接在这里:https://leetcode.com/problems/minimum-number-of-steps-to-make-two-strings-anagram-ii/题目:Youaregiventwostrings s and t.Inonestep,you......
  • LeetCode 1347. Minimum Number of Steps to Make Two Strings Anagram
    原题链接在这里:https://leetcode.com/problems/minimum-number-of-steps-to-make-two-strings-anagram/题目:Youaregiventwostringsofthesamelength s and t.......