<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a_clear_chen的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a_clear_chen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a_clear_chen]]></copyright><item><title><![CDATA[LeetCode——2的幂]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/81008277</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/81008277</guid><author>a_clear_chen</author><pubDate>Wed, 11 Jul 2018 22:52:50 +0800</pubDate><description><![CDATA[题目描述：给定一个整数，编写一个函数来判断它是否是 2 的幂次方。代码如下：        public bool IsPowerOfTwo1(int n)
        {
            return n &amp;gt; 0 &amp;amp;&amp;amp; (n &amp;amp; (n - 1)) == 0;
        }
        public bool IsPowerOfTwo2(int ...]]></description><category></category></item><item><title><![CDATA[LeetCode——翻转二叉树]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/81007726</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/81007726</guid><author>a_clear_chen</author><pubDate>Wed, 11 Jul 2018 22:07:57 +0800</pubDate><description><![CDATA[题目描述：翻转一棵二叉树。示例：输入：   4
   /   \
  2     7
 / \   / \
1   3 6   9输出：     4
   /   \
  7     2
 / \   / \
9   6 3   1思路：使用队列进行一次深度遍历，每次将队列头节点的左右子树交换，直到队列为空。代码如下：public TreeNode InvertTree(TreeNode root...]]></description><category></category></item><item><title><![CDATA[LeetCode——用队列实现栈]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80992058</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80992058</guid><author>a_clear_chen</author><pubDate>Tue, 10 Jul 2018 21:04:22 +0800</pubDate><description><![CDATA[题目描述：使用队列实现栈的下列操作：    push(x) -- 元素 x 入栈    pop() -- 移除栈顶元素    top() -- 获取栈顶元素    empty() -- 返回栈是否为空    注意:        你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。     ...]]></description><category></category></item><item><title><![CDATA[LeetCode——计数质数]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800896</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800896</guid><author>a_clear_chen</author><pubDate>Mon, 25 Jun 2018 14:20:31 +0800</pubDate><description><![CDATA[问题描述：统计所有小于非负整数 n 的质数的数量。思路：大于2的偶数都不是质数，所以我们只需要判断奇数是不是质数。代码如下：public int CountPrimes(int n) {
        if(n&amp;lt;3)
            return 0;
        int count=n/2;
        bool[] f=new bool[n];
        for(...]]></description><category></category></item><item><title><![CDATA[LeetCode——删除链表中的节点]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800818</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800818</guid><author>a_clear_chen</author><pubDate>Mon, 25 Jun 2018 13:49:23 +0800</pubDate><description><![CDATA[问题描述：删除链表中等于给定值 val 的所有节点。思路：使用三个引用保存当前节点，前一个节点，后一个节点。要考虑到删除的节点是头节点、尾节点、中间节点，删除后链表为空这些情况。代码如下：public ListNode RemoveElements(ListNode head, int val) {
        while(head!=null &amp;amp;&amp;amp; head.val==val...]]></description><category></category></item><item><title><![CDATA[LeetCode——快乐数]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800739</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800739</guid><author>a_clear_chen</author><pubDate>Mon, 25 Jun 2018 13:41:57 +0800</pubDate><description><![CDATA[问题描述：编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为：对于一个正整数，每一次将该数替换为它每个位置上的数字的平方和，然后重复这个过程直到这个数变为 1，也可能是无限循环但始终变不到 1。如果可以变为 1，那么这个数就是快乐数。思路：将数替换为它每个位置上的数字的平方和，这个比较好实现，先取余10，再除以10。什么时候会循环呢？出现了之前出现的数，这个可以使用hashset来进行...]]></description><category></category></item><item><title><![CDATA[LeetCode——打家劫舍]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800624</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80800624</guid><author>a_clear_chen</author><pubDate>Mon, 25 Jun 2018 13:29:13 +0800</pubDate><description><![CDATA[问题描述：你是一个专业的小偷，计划偷窃沿街的房屋。每间房内都藏有一定的现金，影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统，如果两间相邻的房屋在同一晚上被小偷闯入，系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组，计算你在不触动警报装置的情况下，能够偷窃到的最高金额。思路：这是一个求最优解的问题，使用动态规划。使用dp[i]表示第i间房屋能够偷窃到的最高金额，numa[i]...]]></description><category></category></item><item><title><![CDATA[LeetCode——存在重复元素 II]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80782640</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80782640</guid><author>a_clear_chen</author><pubDate>Sat, 23 Jun 2018 13:01:16 +0800</pubDate><description><![CDATA[题目描述：给定一个整数数组和一个整数 k，判断数组中是否存在两个不同的索引 i 和 j，使得 nums [i] = nums [j]，并且 i 和 j 的差的绝对值最大为 k。解题思路：可以参考存在重复元素 I的解法，只需要改动一下。只取nums中相连的k个数尝试添加进hashset中，所以还要判断k与nums.Length的关系，具体代码如下：public bool ContainsNearby...]]></description><category></category></item><item><title><![CDATA[LeetCode——旋转数组]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80649502</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80649502</guid><author>a_clear_chen</author><pubDate>Mon, 11 Jun 2018 11:39:14 +0800</pubDate><description><![CDATA[问题描述：给定一个数组，将数组中的元素向右移动 k 个位置，其中 k 是非负数。解法一：将下标为i的元素放在下标i+k处，再将下标i+k处的元素放置在正确位置，以此类推（AC），时间复杂度：O（n），空间复杂度：O（1），代码如下：private static void Rotate1(int[] nums,int k)
        {
            if (k == 0)
    ...]]></description><category></category></item><item><title><![CDATA[Unity—实现鼠标拖拽]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80507641</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80507641</guid><author>a_clear_chen</author><pubDate>Wed, 30 May 2018 11:40:55 +0800</pubDate><description><![CDATA[鼠标拖拽好像只能用于UI对象，暂时好像是这样的，如有误，我后面会更新。一：NGUI实现    NGUI的更简单，只需直接覆写OnDragRelease()方法//拖拽结束时调用
protected override void OnDragDropRelease(GameObject surface)
{
}什么都不用写就实现了拖拽。二、UGUI实现    UGUI需要实现对应的接口，以及自己更新U...]]></description><category></category></item><item><title><![CDATA[Unity—背包系统（思路总括）]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80494027</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80494027</guid><author>a_clear_chen</author><pubDate>Wed, 30 May 2018 08:50:53 +0800</pubDate><description><![CDATA[        这个背包系统我是跟着视频（黑暗之光）用NGUI做的，假如后面有时间的话我会自己用UGUI做一个。        大概介绍一下效果吧：按键模拟拾取物品，物品会放在背包的方格中，显示物品数量，鼠标移到物品上会显示物品信息，实现拖拽（判定拖拽到的位置）。 大概思路如下：1、搭建背包UI（手动搭建）2、使用txt文件存储物品信息（注意各项存储顺序）3、创建脚本从txt文件中读取物品信息4、...]]></description><category></category></item><item><title><![CDATA[详解Victor3.Lerp]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80403307</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80403307</guid><author>a_clear_chen</author><pubDate>Tue, 22 May 2018 11:43:46 +0800</pubDate><description><![CDATA[Linearly interpolates between two vectors.

Interpolates between the vectors a and b by the interpolant t. The parameter t is clamped to the range [0, 1]. This is most commonly used to find a point some fraction of the way along a line between two endpoint]]></description><category></category></item><item><title><![CDATA[四种移动到目标位置的方式（物体与UI界面皆可）]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80402917</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80402917</guid><author>a_clear_chen</author><pubDate>Tue, 22 May 2018 11:21:35 +0800</pubDate><description><![CDATA[第一种：使用Vector3.MoveTowardstransform.localPosition = Vector3.MoveTowards(start, end, speed * Time.deltaTime);假如移动的是界面的话，设置为localPosition，物体则为Position。第二种：使用数学插值移动float step = speed * Time.deltaTime;
tra...]]></description><category></category></item><item><title><![CDATA[剑指Offer——合并数组]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80242200</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80242200</guid><author>a_clear_chen</author><pubDate>Tue, 08 May 2018 17:16:05 +0800</pubDate><description><![CDATA[题目描述：有两个排序的数组A1和A2，内存在A1的末尾有足够多的空余空间容纳A2。请实现一个函数，把A2中的所有数字插入A1中，并且所有数字是排序的。分析：因为两个数组都已经排序了，切A1的末尾有足够的空间，那我们就从末尾这个角度来解。从A1和A2的末尾开始比较，将更大的放在A1容量的末尾，然后向前扫描。因为是用c#写，所以我是重新声明了一个数组来存储A1和A2的值。代码如下：private st...]]></description><category></category></item><item><title><![CDATA[剑指Offer——替换空格]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241791</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241791</guid><author>a_clear_chen</author><pubDate>Tue, 08 May 2018 16:47:35 +0800</pubDate><description><![CDATA[题目描述：请实现一个函数，把字符串中的每个空格替换成&quot;%20&quot;。分析：首先，要将字符串转换成字符数组，再进行替换。不过在c#中，数组一旦初始化了，就无法再改变存储空间的大小，所以我用了两个字符数组。然后怎么替换呢？可以扫描到空格后将后面的字符后移，然后进行替换，这样时间复杂度为O(n^2)。有没有时间复杂度为O(n)的方法呢？我们可以试一下从后往前扫描会怎么样。先扫描一遍，获取空格的数量，然后分配...]]></description><category></category></item><item><title><![CDATA[剑指Offer——二维数组中的查找]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241525</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241525</guid><author>a_clear_chen</author><pubDate>Tue, 08 May 2018 16:29:44 +0800</pubDate><description><![CDATA[题目描述：在一个二维数组中，每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。分析：笨方法是将二维数组转为一维数组，再去判断，但这样性能很差，既耗时又耗空间。仔细分析问题，提供的二维数组是有规律的，每一行从左到右递增，每一列从上到下递增，那么，假如一行末尾的数小于它，则那一行的数都小于它，一列开头的数...]]></description><category></category></item><item><title><![CDATA[剑指Offer——不修改数组找出重复的数字]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241384</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241384</guid><author>a_clear_chen</author><pubDate>Tue, 08 May 2018 16:15:19 +0800</pubDate><description><![CDATA[题目描述：在一个长度为n+1的数组里所有数字都在1~n的范围内，所以数组中至少有一个数是重复的。请找出数组中任意一个重复的数，但不能修改输入的数组。分析：重复的数一定在某范围内，我们可以逐渐缩小范围，直到找到重复的数。代码如下：public sealed class ErfenAndFind
    {
        public static int one = -1;
        pub...]]></description><category></category></item><item><title><![CDATA[剑指Offer——数组中重复的数字]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241040</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80241040</guid><author>a_clear_chen</author><pubDate>Tue, 08 May 2018 16:07:22 +0800</pubDate><description><![CDATA[题目描述：在一个长度为n的数组里所有数字都在0~n-1范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。分析：解法一：先排序，再找出重复的数字，可以找出所有重复的数字。代码如下：public sealed class SortAndFind
    {
        //快排的单元排序
        private stati...]]></description><category></category></item><item><title><![CDATA[剑指Offer——从尾到头打印链表]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80240260</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80240260</guid><author>a_clear_chen</author><pubDate>Tue, 08 May 2018 15:35:35 +0800</pubDate><description><![CDATA[题目描述：输入一个链表的头结点，从尾到头反过来打印出每个节点的值。分析：从尾到头打印，那就是先进后出，根据这个可以想想能不能用栈实现，这个是可以的。先按顺序把节点的值入栈，所有值入栈之后再出栈，直到栈为空。除了使用栈之外还有什么方法吗？有的，还有一个和栈类似，那就是递归，递归在本质上就是一个栈结构，所以就有两种解法。代码如下：声明节点对象，并提供必要的方法：class ListNode
    {...]]></description><category></category></item><item><title><![CDATA[Unity发布Android版本]]></title><link>https://blog.youkuaiyun.com/a_clear_chen/article/details/80236334</link><guid>https://blog.youkuaiyun.com/a_clear_chen/article/details/80236334</guid><author>a_clear_chen</author><pubDate>Tue, 08 May 2018 11:13:26 +0800</pubDate><description><![CDATA[先大概说一下我自己的经历吧，总的大概用了10小时吧。刚开始装的是jre和Android stdio，然后发现要装的是JDK和SDK，然后去装JDK和SDK，装JDK很顺利，装SDK失败了，原因未知。后面是用 Android stdio装的SDK。最后发布的时候又踩了一些坑，好吧，这些是给自己看的。下面划重点了：1、要装的是JDK和SDK，而不是Jre和Android stdio，装JDK的时候会一...]]></description><category></category></item></channel></rss>