首页 > 其他分享 >循环控制:链表和数组

循环控制:链表和数组

时间:2023-04-26 15:33:42浏览次数:40  
标签:node tmp arr Next 链表 循环 数组

循环是常用的流程环节。

 1 //链表控制
 2 //链表控制的优点,是通过指针来定位,那么循环的过程中,即是可变的,实时性很强。        
 3     var tmp *datastruct.ListNode
 4     tmp = &datastruct.ListNode{Val: -1, Next: nil}
 5 
 6     i := 0
 7     for node := tmp; node != nil; node = node.Next {
 8         if i >= 10 {
 9             break
10         }
11 
12         node.Next = &datastruct.ListNode{
13             Val: i,
14             Next: nil,
15         }
16 
17         i++
18     }
19 
20     for node := tmp; node != nil; node = node.Next {
21         fmt.Println(node)
22     }
23 
24 //循环通过数据来控制
25 //由于range的时候 完成了值copy,所以range后面的arr长度为1,那么中间过程代码对于arr的追增,依旧长度为1.
26 //所以只会循环一次
27 
28     i = 0
29     arr := []int{-1}
30     for _, val := range arr {
31         fmt.Println(val)
32         if i >= 10 {
33             break
34         }
35         arr = append(arr, i)
36 
37         fmt.Println(val)
38         i++
39     }
40 
41 //那么数组如何动态控制循环呢? 类似死循环的技巧,可以实现
42     i = 0
43     arr = []int{-1}
44     for len(arr) > 0 {
45         arr = arr[1:]
46         if i >= 10 {
47             break
48         }
49 
50         arr = append(arr, i)
51 
52         fmt.Println(i)
53 
54         i++
55     }    

 

可变循环的需求: 就是通过边界上的设定,规避语言的限制(或者其他限制),从而更符合场景的实现。

 

循环也是很重要的流程环节。

标签:node,tmp,arr,Next,链表,循环,数组
From: https://www.cnblogs.com/supermarx/p/17356181.html

相关文章

  • 洛谷 P3374——树状数组 / 树状数组模板题
    洛谷P3374——树状数组#include<iostream>usingnamespacestd;constintN=5e5+10;inttr[N],a[N];intn,m;intlowbit(intx){returnx&-x;}voidadd(intu,intc){//给所有管辖中有a[i]的tr[]加上cfor(inti=u;i<=n;i+......
  • 函数高级、包的使用、if-else、循环、switch、数组
    目录1函数高级2包的使用3if-else4循环5switch6数组1函数高级packagemainimport"fmt"//1函数的参数和返回值都是类型的一部分,函数可以赋值给一个变量//test3函数,接收一个参,参数是函数类型:没有参数没有返回值//test有返回值,返回值是个函数:函数有两个参数,一......
  • LeetCode 152. 乘积最大子数组
    20230426顺利通过原题解题目约束题解classSolution{public:intmaxProduct(vector<int>&nums){intmaxF=nums[0],minF=nums[0],ans=nums[0];for(inti=1;i<nums.size();++i){intmx=maxF,mn=minF;......
  • 两两交换链表中的结点
    题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)  步骤: classSolution{public:ListNode*swapPairs(ListNode*head){ListNode*dummyHead=newListNode(0);//......
  • 2022-04-25:给定两个长度为N的数组,a[]和b[] 也就是对于每个位置i来说,有a[i]和b[i]两个
    2022-04-25:给定两个长度为N的数组,a[]和b[]也就是对于每个位置i来说,有a[i]和b[i]两个属性ia[i]b[i]ja[j]b[j]现在想为了i,选一个最好的j位置,搭配能得到最小的如下值:(a[i]+a[j])^2+b[i]+b[j]我们把这个最小的值,定义为i的最in值比如:a={2,3,6,5,1......
  • 2022-04-25:给定两个长度为N的数组,a[]和b[] 也就是对于每个位置i来说,有a[i]和b[i]两个
    2022-04-25:给定两个长度为N的数组,a[]和b[]也就是对于每个位置i来说,有a[i]和b[i]两个属性ia[i]b[i]ja[j]b[j]现在想为了i,选一个最好的j位置,搭配能得到最小的如下值:(a[i]+a[j])^2+b[i]+b[j]我们把这个最小的值,定义为i的最in值比如:a={2,3,6,5,1......
  • 23-4-25--链表--一元多项式求导
    设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。输入样例:34-5261-20 ......
  • 高精度模板 大数减大数 可变数组vector实现
    vector<int>Sub(vector<int>&A,vector<int>&B)//这里默认长数减去短数{vector<int>C;//结果向量intT=0;//上一位借位标志位for(inti=0;i<A.size();i++){T=A[i]-T;if(i<B.size())T-=B[i];//检......
  • 力扣---2653. 滑动子数组的美丽值
    给你一个长度为n 的整数数组 nums ,请你求出每个长度为 k 的子数组的美丽值 。一个子数组的美丽值 定义为:如果子数组中第x 小整数 是负数 ,那么美丽值为第x 小的数,否则美丽值为0 。请你返回一个包含 n-k+1 个整数的数组,依次 表示数组中从第一个下标开始......
  • 代码随想录算法训练营第六天 | 242.有效的字母异位词 、349. 两个数组的交集 、 202.
    ......