遍历

iOS 点击事件传递及响应

烈酒焚心 提交于 2020-01-22 06:50:45
1.iOS中的事件 iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件 这里我们只讨论iOS中的触摸事件。 1.1响应者对象(UIResponder) 在iOS中不是任何对象都能处理事件, 只有继承了UIResponder的对象才能接收并处理事件,我们称为响应者对象 UIApplication,UIViewController,UIView都继承自UIResponder,因此他们都是响应者对象, 都能够接收并处理事件 UIResponder内部提供了以下方法来处理事件 触摸事件 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 加速计事件 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event; -

【Python基础学习笔记day14】python高级变量类型+元组+字典+字符串+公共方法+Python 内置函数+切片+运算符+成员运算符+完整的 for 循环语法+应用场景

倖福魔咒の 提交于 2020-01-22 05:18:07
高级变量类型 文章目录 高级变量类型 目标 知识点回顾 01. 列表 1.1 列表的定义 1.2 列表常用操作 del 关键字(科普) 关键字、函数和方法(科普) 1.3 循环遍历 1.4 **应用场景** 02. 元组 2.1 元组的定义 创建空元组 元组中 **只包含一个元素** 时,需要 **在元素后面添加逗号** 2.2 元组常用操作 2.3 循环遍历 2.4 应用场景 元组和列表之间的转换 03. 字典 3.1 字典的定义 3.2 字典常用操作 3.3 循环遍历 3.4 **应用场景** 04. 字符串 4.1 字符串的定义 4.2 字符串的常用操作 1) 判断类型 - 9 2) 查找和替换 - 7 3) 大小写转换 - 5 4) 文本对齐 - 3 5) 去除空白字符 - 3 6) 拆分和连接 - 5 4.3 字符串的切片 索引的顺序和倒序 05. 公共方法 5.1 Python 内置函数 5.2 切片 5.3 运算符 成员运算符 5.4 完整的 for 循环语法 应用场景 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 ( int ) 浮点型( float ) 布尔型( bool ) 真 True 非 0 数 —— 非零即真 假 False 0 复数型 ( complex )

1021. 删除最外层的括号

偶尔善良 提交于 2020-01-22 04:20:16
栈的用处, 当遍历的时候,后续元素的操作根据前面元素的状态而不同时, 即我们需要存储前面的元素来判断对后面元素的操作, 也可以根据后面的元素状态对前面的元素进行二次操作。 比如删除最外层的括号这一题, 遇到左括号,我们把它入栈,遇到之后的括号, 我们需要根据它的状态而对之前存储的元素进行操作,比如我们遇到了右括号,那么我们就得到一个删除栈顶的左括号。 可以看出,在这里,我们的栈中保存的都是左括号,而对于原语来说最重要的莫过于第一个左括号的位置,我们从第一个左括号之后遍历,而第一个左括号的寿命直到我们遍历完一个完整的原语。所以之前元素的状态很重要, 这时我们就需要栈 。 算法思想: “ 不存” 比 “存了再删” 更高级。 遍历最好做一次,不用先把有效数字加工好存放好,再遍历,多一次遍历的时间也是没有必要的。 不要放过题目给的信息,有些信息有助于想出更简单的函数。 Hashmap ; 当遇到一个集合与另一个集合有多次比较的功能情况,建议使用 hashmap 。当然这个比较最终都要能化为一一对应的关系。 来源: CSDN 作者: 芒骁 链接: https://blog.csdn.net/qq_44587855/article/details/103985450

数据结构:(代码篇 001) 给定先序和中序遍历,重建这棵树

走远了吗. 提交于 2020-01-22 00:17:17
目录 1.理论依据: 具体情况下: 一般情况下: 2.代码 1.理论依据: 具体情况下: 已知先序遍历:pre1、pre2、pre3、pre4、……、preN,中序遍历:in1、in2、……、inN。 由先序遍历的性质可知:pre1是当前二叉树根节点的值,然后,在中序遍历中遍历一遍,找到根节点(记为k),k左侧的就是左子树,k右侧的就是右子树。 左子树的长度:numleft=k-1; 那么,先序遍历中左子树的范围:2~2+numleft , 右子树的范围:k+1~N 中序遍历中左子树的范围: 1~k-1 ,右子树的范围:k+1~N 一般情况下: 已知先序遍历:preL、……、preR,中序遍历:inL、in2、……、inR。 由先序遍历的性质可知:preL是当前二叉树根节点的值,然后,在中序遍历中过一遍,找到根节点(记为k),k左侧的就是左子树,k右侧的就是右子树。 左子树的长度:numleft=k-inL; 那么,先序遍历中左子树的范围:preL+1~preL+numleft , 右子树的范围:preL+numleft+1~preR 中序遍历中左子树的范围: inL~k-1 ,右子树的范围:k+1~inR 2.代码 node* create(int preL,int preR,int inL,int inR){ if(preL>preR){ // 先序序列小于0,则返回

前端工程师面试题汇总(二)

喜你入骨 提交于 2020-01-22 00:02:46
面试题 请你谈一下transition和animation的区别 请你简要介绍一下事件委托,能举个简单的例子吗?使用事件委托的好处是什么? 请你讲一下,使用setTimeout()方法来模拟setInterval()与直接使用setInterval()有什么区别 请你介绍一下http2.0 请简单介绍一下Flex布局 请讲一下图片的懒加载和预加载不同点,他们的本质是什么?这两种技术对于服务器前段的影响各是什么? 编程题 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 输入两个链表,找出它们的第一个公共结点。 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 来源: CSDN 作者: Supreme_lwl 链接: https://blog.csdn.net/qq_42515626/article/details/104065675

java集合类

岁酱吖の 提交于 2020-01-21 18:37:32
Java集合类复习 java集合类是由java.util包中提供的用于存放对象的引用的类。 主要用于完成数据库和数据结构的功能。 集合类主要有三种类型:list(列表结构集合类) map(映射(散列)结构集合类) set(集) 如图所示:实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 1、所有集合类都实现了提供遍历集合中元素的Iterator迭代器接口,对一个集合声明一个迭代器Iterator it=arr.iterator();,会提取出集合中的所有元素。 主要包含三种方法:1、hasNext()-判断是否还有下一个元素; 2、next()-返回下一个元素;3、remove()-移除当前元素。 2、集合总接口Collection分支列表接口List和集接口Set。 3、列表接口List被实现集合类Vector、ArrayList、LinkedList, Stack是Vector的子类,使用压栈方法的后进先出的存储结构。 Vector类似数组的表,可自动100%增加容量来存储元素,可设置初始容量,数据量大时较ArrayList有优势,使用从int 0开始的下标存储或检索对象(可以相同),随机查询get(int a)方便,适合查询或按顺序存取对象,但随机存取add和remove需要重排之后的数据,是唯一的线程同步列表集合类,同步但影响效率。

二叉树遍历,递归,栈,Morris

只愿长相守 提交于 2020-01-21 08:09:44
一篇质量非常高的关于二叉树遍历的帖子,转帖自http://noalgo.info/832.html 二叉树遍历(递归、非递归、Morris遍历) 2015年01月06日 | 分类: 数据结构 | 标签: 二叉树遍历 | 评论: 8条评论 | 浏览:6,603次 二叉树遍历是二叉树中最基本的问题,其实现的方法非常多,有简单粗暴但容易爆栈的递归算法,还有稍微高级的使用栈模拟递归的非递归算法,另外还有不用栈而且只需要常数空间和线性时间的神奇Morris遍历算法,本文将对这些算法进行讲解和实现。 递归算法 二叉树节点使用以下数据结构进行表示,包括关键字、左儿子、右儿子属性和一个带默认参数的构造函数。 struct成员的默认属性为public,于是可以直接访问。 struct Node { int val; Node *left, *right; Node(int v = 0, Node *l = NULL, Node *r = NULL) : val(v), left(l), right(r) {} }; 二叉树的递归算法非常简单,设置好递归出口之后,根据遍历的顺序,对当前节点的左右子递归调用自身即可。其前序、中序、后序遍历的代码如下。 void preorder1(Node *root) //递归前序遍历 { if (root == NULL) return; printf("%d ",

Java遍历map集合的4中方式

你离开我真会死。 提交于 2020-01-21 05:27:36
方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } 方法二、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Integer key : map.keySet()) { Integer value = map.get(key); System.out.println("Key = " + key + ", Value = " + value); } 方法三 如果只需要map中的键或者值,你可以通过Map.keySet或Map.values来实现遍历

层序遍历

我与影子孤独终老i 提交于 2020-01-21 01:03:03
题目描述:给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 解题思路:思路来自牛客网努力的牛牛 利用队列这个数据结构,队列是先进先出的。因为是按照从左到右的顺序层次遍历,所以用队列记录每一层的根结点,然后根据队列的大小(即这一层的节点数目),依次将队列中的节点取出,加入到vector中,将左子树和右子树放入队列。每一层遍历过后,将这一层vecotr加入总的vector中,最终就能获得层次遍历的结果。 class Solution { public : vector < vector < int > > levelOrder ( TreeNode * root ) { vector < vector < int >> res ; if ( root == NULL ) return res ; queue < TreeNode * > store ; vector < int > cur ; store . push ( root ) ; while ( ! store . empty ( ) ) { cur . clear ( ) ; int n = store . size ( ) ; for ( int i = 0 ; i < n ; ++ i ) { TreeNode * node = store . front ( ) ; store . pop (

Collection集合-(List集合)

人盡茶涼 提交于 2020-01-21 01:02:18
Collection集合体系 其中蓝色框为接口,红色框为具体实现类 Collection集合概述和使用 Collection是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素 JDK不提供此接口的任何直接实现,它提供更具体的子接口(如list和set)实现 创建Collection集合的对象:多态的方式、具体的实现类为ArrayList 集合使用步骤: //创建Colleciton集合对象 Collection<Student> = new ArrayList<Student>(); //创建学生对象 Student s1 = new ("小明"); Student s2 = new ("老王"); Student s3 = new ("张总"); //把学生添加到集合 s.add(s1); s.add(s2); s.add(s3); //遍历集合(迭代器方式) //通过集合对象获取迭代器 Iterator<Student> it = s.iterator(); while(it.hasNext()){ Student c = it.next(); //输出 System.out.println(c.getName()); } List集合概述和特点 List集合:有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置