自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

VanillaSky

日子不管怎么苦,走下去,总是甜的

  • 博客(46)
  • 收藏
  • 关注

原创 HTTPS 以及 Charles 抓包

一直对认证方面云里雾里,感觉看过多少篇文章理解也不是很透彻,偶然工作中遇到了认证问题,再去查再去看,好像一下子明白了很多,果然学习知识是要循序渐进。这里总结一下HTTPS以及用Charles抓HTTPS包要如何配置。这里先po出我觉得比较好并且引用的两篇文章链接关于HTTPS原理以及iOS Challenge关于HTTPS原理以及Charles配置我引用了这两篇文章里面的一些内容...

2019-05-31 16:16:53 421

原创 iOS Handling Authentication Challenge

NSURLSession 引入后, request被包装进data task或者download task中发送至server, 如果server需要客户端的认证, session task 会尝试处理,如果无法处理则会发起客户端的challenge,调用Session 或者 task didReceiveChallenge的代理方法。如何handle一个challenge, 苹果有官方文档:...

2019-05-31 14:06:50 357

原创 02 OC面向对象基础

类文件及引用 使用import 解决include递归包含问题,相当于加了预处理判定指令的#include 同理:表示系统库, “”表示引用自身头文件 import import “myHeader.h”变量及方法简述成员变量作用域、访问方式 成员变量作用域 成员变量封装方法访问(getter/ setter) 点语法访问 编译器升级: @

2017-04-14 17:24:54 308

原创 01 简介语法点

没有Java类似包名或者C++类似命名空间的概念利用在类名前加前缀来达到区分同名类的目的: NS*: NSString /NSArray… 自定义的类要用自定义前缀用来区分关键字特征因为可以与C,C++进行混编。因此OC中的关键字都是用前面加@来区分的: @interface @end @implement @”” @property @synthesize基本细碎常用语法点 basic

2017-04-12 11:36:06 280

原创 两个小Points

* dismissModalViewControllerAnimated * dismiss 顺序问题: A present B , B present C. B 作为主体调用dismiss方法时,首先找自己作为presenter present出来的视图,将其dismiss掉。/*The next two methods are replacements for presentModalV

2016-11-03 10:29:24 260

原创 Performance Optimization of UITableView

Performance Optimization of UITableViewUITableView核心的优化在UITableViewCell上,从UITableView最主要的两个回调方法来分析UITableView的性能优化。tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) ->

2016-11-03 09:54:18 254

原创 位运算其他应用

位操作进行标识leetcode78 https://leetcode.com/problems/subsets/Given a set of distinct integers, nums, return all possible subsets.Note:Elements in a subset must be in non-descending order.The solution set

2015-06-09 19:53:54 468

原创 数组中异常数发现

数组中1个数出现一次其他出现2次Leetcode136 https://leetcode.com/problems/single-number/ 思路:有一个异常数:整体抑或一遍。适合只有1个数出现奇数次,其他数出现偶数次public int singleNumber(int[] nums) { for(int i = 1; i < nums.length; i++) nums[0] ^=

2015-06-09 19:51:50 635

原创 某个数字进行位运算

将数字按位倒序leetcode190 https://leetcode.com/problems/reverse-bits/Reverse bits of a given 32 bits unsigned integer.For example, given input 43261596 (represented in binary as 00000010100101000001111010011

2015-06-09 19:46:26 621

原创 位基本运算

1. 进制转换思路: 数制转化问题可以利用乘法除法进行运算并用栈或者其他数据结构进行存储,但是更高效的是能用就用位运算来做。例如将十进制转为16、8、2进制,都可以运用位运算来做,这里贴出java.lang.Integer中进制转化代码供借鉴和学习~private static String toUnsignedString(int i, int shift){//i为待转换的整数,shift为要

2015-06-07 10:56:48 538

原创 位运算

1. 基本位运算进制转换 加法运算 简单位运算2. 某个数字进行位运算将数字按位倒序 判断数字位中有多少个13. 数组中异常数发现数组中1个数出现一次其他出现2次 数组中2个数出现一次其他出现2次 数组中1个数出现一次其他出现3次 数组中1个数出现了n/2多次4. 位运算其他应用位操作进行标识 位操作进行哈希设计

2015-06-06 10:01:44 455

原创 其他栈相关问题

1. 包含min函数的栈来源 leetcode155 https://leetcode.com/problems/min-stack/ 剑指offer21Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element

2015-06-05 19:28:49 407

原创 单调栈相关

1. 利用单调栈求最大矩形面积(两边求)来源 poj: http://poj.org/problem?id=2082 ; leetcode: https://leetcode.com/problems/largest-rectangle-in-histogram/ 题目:Given n non-negative integers representing the histogram's ba

2015-06-04 08:52:30 458

原创 基础模拟栈

栈的压入弹出序列来源:剑指offer22 给定两个整数序列,第一个为栈的压入序列,判断第二个序列是否为栈的弹出序列。 思路:同时遍历两个序列,当第二个序列中的元素不等于第一个序列中元素时,判断栈顶元素是否等于当前元素,如是则弹出,第二个游标后移。若不是,将第一个序列当前元素入栈后,游标后移,循环判断。 eg: 123456 与 132465,压弹栈的顺序为 1,入栈,出栈 2,入栈 3,

2015-06-02 11:08:17 420

原创 栈与队列

1. 基础模拟栈,包括:栈的压入弹出序列 后缀表达式求解 括号匹配问题 数制转化问题2. 单调栈问题3. 汉诺塔问题及其扩展4. 队列(循环队列实现)5. 其他相关问题包含min函数的栈 用栈实现队列 用队列实现栈 用一个数组实现两个栈 翻转栈中所有元素,要求空间复杂度o(1)

2015-06-01 09:28:33 423

原创 构建二叉树

以#为终止符构建先序二叉树eg. 12#4#5##3##public int index = 0;public TreeNode constructPreorderTree(char[] str){ if(str[index++] == '#') return null; TreeNode node = new TreeNode(str[index]-'0'); index

2015-05-28 09:34:50 476

原创 二叉查找树其他操作

将二叉搜索树转变为排序的双向链表来源:剑指offer27 思路:想成是中序遍历的变形,可以利用中序遍历的非递归方式不断压栈弹栈,保存前一个节点与其互指。 也可以使用递归方式,每次可以返回已成形链表的最后一个节点,用给节点连接当前节点,再将当前节点的右子树的最小节点连接起来。public TreeNode last = null;public TreeNode Convert(TreeNode

2015-05-27 20:23:19 407

原创 二叉查找树相关判断

判断给定树是否为二叉查找树来源leetcode98 https://leetcode.com/problems/validate-binary-search-tree/ 思路:刚开始想的是,当前树左子小于当前节点并且右子大于当前节点并且其两个子树也递归满足这样条件时成立。 代码如下public boolean ifBinarySearchTree(TreeNode root){ if

2015-05-25 19:39:10 434

原创 二叉查找树构建

给定n构建最大值为n的二叉查找树——树的形态种类 https://leetcode.com/problems/unique-binary-search-trees/ Given n, how many structurally unique BST’s (binary search trees) that store values 1…n? For example, Given n = 3,

2015-05-25 19:24:05 1123

原创 二叉树其他操作

二叉树的镜像剑指offer19 1 1 / \ / \ 2 3 --> 3 2 / \ 4 4public TreeNode getIso(TreeNode root){ if(root == null) return null; TreeNode nRoo

2015-05-21 16:53:20 430

原创 二叉树转换成其他结构

将二叉树变为链表https://leetcode.com/problems/flatten-binary-tree-to-linked-list/Given 1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like: 1 \ 2

2015-05-21 11:00:45 442

原创 PathSum问题

树的节点结构: public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }1.Root-to-Leaf Path(1)判断是否有一条从根到叶子的路径,使得路径和等于某个值 https://leetcode.com/problems/p

2015-05-21 10:22:53 532

原创 树的判断

树的结构为public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int x) { val = x; }}判断两个树结构是否相同https://leetcode.com/problem

2015-04-17 16:22:35 601

原创 二叉树遍历相关

树的结构为public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int x) { val = x; }}判断一个结点是否存在于二叉树中递归判断即可public boolean ifE

2015-04-17 10:22:55 564 1

原创 获取二叉树性质相关

树的结构为public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int x) { val = x; }}二叉树中叶子节点的个数叶子指没有两个孩子的节点。递归的方法是,一个节点下的叶子

2015-04-09 20:39:56 520

原创 树与二叉树基本性质相关

树的基本性质相关树的结点包含一个数据及指向子树的分支。结点拥有的子树数称为结点的度。度为0的结点称为叶结点。树的度是树的各节点度的最大值。结点的层次从根开始定义,根为第一层,根的孩子为第二层…..树中结点的最大层次称为树的深度或者高度。二叉树的基本性质相关二叉树每个结点最多有两棵子树,不存在度大于2的结点。左右子树是有序的。二叉树的形态:空二叉树,只有根结点,根结点只有左子树,根结点只有右

2015-04-09 20:03:04 513

原创 链表实现两个数字相加

两个用链表表示的数字相加 https://leetcode.com/problems/add-two-numbers/ You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contai

2015-04-03 09:32:36 1439

原创 链表性质判断

判断单链表是否有环,如果有环的话请返回从头结点进入环的第一个节点,没有就返回null https://leetcode.com/problems/linked-list-cycle-ii/ 两个游标指针一起从头走,一个走一步,一个走两步,若能再次相遇,就说明有环. 两个指针分别从头和相遇处走,再次相遇处就是相交点。public ListNode detectCycle(ListNode hea

2015-03-30 11:12:01 572

原创 链表性质判断

判断单链表是否有环,如果有环的话请返回从头结点进入环的第一个节点,没有就返回null https://leetcode.com/problems/linked-list-cycle-ii/ 两个游标指针一起从头走,一个走一步,一个走两步,若能再次相遇,就说明有环. 两个指针分别从头和相遇处走,再次相遇处就是相交点。public ListNode detectCycle(ListNode hea

2015-03-30 11:09:36 441

原创 特殊列表拷贝

拷贝带有random域的特殊链表Copy List with Random Pointer https://leetcode.com/problems/copy-list-with-random-pointer/ A linked list is given such that each node contains an additional random pointer which could

2015-03-30 11:07:07 403

原创 链表排序相关

将链表按给定标准值(pivot)分割Partition List https://leetcode.com/problems/partition-list/ Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal t

2015-03-30 09:39:11 508

原创 有序链表合并

将两个有序链表合并https://leetcode.com/problems/merge-two-sorted-lists/ Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the

2015-03-27 11:00:47 539

原创 链表重组篇

主要涉及链表的重组,通常是按规定的对链表逆序,旋转等操作,常用到递归思想,所以要明确递归的输入输出是什么 注意:当给出链表是空,或者一个节点时程序不要崩溃。将链表逆向反转、逆向输出链表(递归、非递归)1.从尾向头打印链表——剑指offer5 方法: 可以顺序遍历链表,将值存栈中,最后再输出;也可以直接递归输出。 注:其实实质一定会用到递归,因为要从后向前输出值,因此,最开始访问的值一定要用什么

2015-03-27 08:49:40 939

原创 tongtong练习ing

数据结构与算法复习顺序排序链表树与二叉树栈与队列查找哈希位运算字符串分治搜索贪心动态规划DP接下来按此顺序推出tongtong私房心得^_^

2015-03-23 10:56:01 400

原创 树与二叉树

二叉树的基本性质相关普通二叉树创建: 先序二叉树,中序二叉树,后序二叉树。 给定两种遍历序列(前序中序或后序中序),重塑二叉树 遍历: 判断一个节点是否存在于二叉树中 二叉树的遍历(先序,中序,后序)递归/非递归 层次遍历(从上到下或从下到上打印) ZigZag遍历方式层次遍历 二叉树性质: 二叉树中叶子节点的个数 二叉树第K层节点数目 二叉树高度、最小高度 树的判断 判

2015-03-23 10:54:27 587

原创 有序链表删除重复元素

从有序链表中删除重复元素,每种剩下一个。1->1->2->2->3->4->4;===>1->2->3->4 两个游标p,q走。p为标杆值,若q的值等于p时,p继续走,不等于时,就将p的下一个置为q。public ListNode deleteDuplicates(ListNode head){ if(head != null){ ListNode p = head, q

2015-03-23 10:14:16 958

原创 O(1)时间的插入与删除

**只给定单链表中某个结点p,O(1)时间内在p前面插入一个结点。返回头结点。** **要询问节点是否一定在链表中(否则判断的时间复杂度为O(n)),是否为空等这些条件。 采用交换值的方法,相当于在该节点后插入节点。public static ListNode insertNodeBeforeNode(ListNode head, ListNode node, ListNode newNode)

2015-03-23 09:13:22 1385

原创 链表的特殊查找

定义链表节点public class ListNode { public int val; public ListNode next; public ListNode(int x){ val = x; next = null; }}找出单链表中间位置节点p与q指针同步,q若走不了两步了,p也不要走,因此只判断q是否能走两步即可。p

2015-03-22 10:39:12 720

原创 按条件重组数组

快速排序变种: 一、将数组按条件重组成两半重点:分割数组 + 扩展条件封装 数组分割:两种方式 1. 两个游标一个从前向后,一个从后向前 2. 两个游标都是从前向后。 时间复杂度:两种时间复杂度都是O(n)条件封装–条件包括: 1. 按奇数偶数分割 2. 按正数负数分割 3. 按整除3不整除3分割 4. ……eg. 剑指offer14—调整数组顺序使奇数位于偶数前面private s

2015-03-19 10:20:12 1966

原创 Struts2基础

访问过程参照下图所示1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求;2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin);3、接着StrutsPrepareAndExecuteFilter被调用,StrutsPrep

2015-03-18 19:54:42 370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除