算法
昱萱
这个作者很懒,什么都没留下…
展开
-
Leetcode977——有序数组的平方
思路:由于平方之后,是个抛物线凹函数,会打乱之前的顺序,最主要的就是重新排列顺序,只需要左右两个指针,同时往中间走,把平方后大的数放进来,这样就有序了。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。请你设计时间复杂度为 O(n) 的算法解决本问题。nums 已按 非递减顺序 排序。977.有序数组的平方。原创 2023-03-23 11:32:49 · 168 阅读 · 0 评论 -
Leetcode27—移除元素
例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。思路:这个题目主要强调要原地修改,不能使用额外的空间,那么就使用两个指针,slow指向新数组的头,fast指向新数组的尾,覆盖掉等于给定值val的位置,就原地移除了给定值val。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。原创 2023-03-23 11:11:20 · 230 阅读 · 0 评论 -
leetcode59——螺旋矩阵II
而在大循环里的四个小循环中同样要处理好边界问题,用两个指针来控制,row,col从0开始,n-offset 控制尾巴,而首尾都会变化,每次大循环后,row,col都相加1,offset也会增加1。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。上面代码中row 和col 其实可以统一成一个变量,假设为start,这样运行速度更快。思路:这道题略难,能观察到是每个循环有四个步骤,原创 2023-03-23 10:48:30 · 60 阅读 · 0 评论 -
Leetcode704——二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。小于中间值,则搜索左边的那段数组,否则搜索右边的数组。注意,数组是有序的,故可以使用两个指针。原创 2023-03-20 19:08:21 · 340 阅读 · 0 评论 -
LeetCode209——长度最小的子数组
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。给定一个含有 n 个正整数的数组和一个正整数 target。如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个。并计算两个指针之间的子数组的和,如果和大于等于。, 如果长度更小则更新最小子数组长度,同时滑动。大小, 等滑动完窗口,即可找到长度最小的子数组。, 记下此子数组长度,即。原创 2023-03-21 18:55:05 · 270 阅读 · 0 评论 -
【算法】两个字符串的编辑距离
【算法】两个字符串的编辑距离计算两个字符串不同的位数,时间复杂度O(n*n)input:string1,string2output:两个字符间的距离example1:string1 = “1234”string2 = “12345”distance = 1example2:string1 = “12534”string2 = “12435”distance = 2思想:利用动态规划法设置一个tbl矩阵,大小为(len1 + 1)*(len2 + 1)用一个双重循环计算原创 2021-07-06 15:07:58 · 735 阅读 · 0 评论 -
关于”算法工程师/机器学习工程师”的笔试和面试总结
从16年九月份开始,参加了一些公司的算法工程师/机器学习工程师岗位的校园招聘,做一些总结,希望可以给大家准备这个职位提供些信息。一、需要的基本技能数据结构知识掌握一门编程语言,c/c++/Java/Python 机器学习常用算法或者某一细分领域(推荐,自然语言处理,图像识别,语音识别等)的常用算法二、笔试和面试内容大多是技术笔试然后二到三轮的技术面试技术笔试都是考察基本的计算机知识,概率统原创 2017-09-21 13:39:40 · 19803 阅读 · 4 评论 -
【算法】今日头条2017编程题
解法一: 思路: 第一步先 排序。这个大家都能想到。 第二步,三个为一组。首先看前三个 a1,a2,a3. FIRST 如果a2-a1<=10&&a3-a2<=10 则符合要求,就从第4个开始,a4,a5,a6为一组。。。 SECOND 如果 a2-a1>10 && a2-a1<=20 则 数量+1,跳到第3个,a3,a,4,a5为一组。。。 THIRD 如果 a2-a1>20原创 2016-12-17 18:38:34 · 2171 阅读 · 0 评论 -
【算法】数论---同余定理
乘数之余等于余数之乘原创 2016-12-16 16:32:51 · 1576 阅读 · 0 评论 -
【算法】求最大公约数
辗转相除法 【原理】 设两数为a、b(a>b),用gcd(a,b)表示a,b的最大公约数,r=a (mod b) 为a除以b的余数,k为a除以b的商,即a÷b=k…….r。辗转相除法即是要证明gcd(a,b)=gcd(b,r)。 第一步:令c=gcd(a,b),则设a=mc,b=nc 第二步:根据前提可知r =a-kb=mc-knc=(m-kn)c 第三步:根据第二步结果可知c也是r的因数原创 2016-12-16 14:28:26 · 547 阅读 · 0 评论 -
【算法】POJ2195 Going Home
题目:Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22134 Accepted: 11177Description On a grid map there are n little men and n houses. In each unit time, every litt原创 2016-12-14 10:03:39 · 569 阅读 · 0 评论 -
【Leecode】207Remove Nth Node From End of List删除倒数第N个结点
/* 1.Remove Nth Node From End of List Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removin原创 2016-11-28 20:46:55 · 343 阅读 · 0 评论 -
【Leecode】207Validate Binary Search Tree有效二叉搜索树
/* 2.Validate Binary Search Tree Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only nodes with ke原创 2016-11-28 21:41:52 · 387 阅读 · 0 评论 -
【算法】Excel中的列名与数字的对应
1 .在Excel中,列的名称是这样一个递增序列:seq={A、B、C、... Z、AA、AB、AC、... AZ、BA、BB、BC、... BZ、CA、... ZZ、AAA、AAB...}。求给出任意一个序列,求这个序列是第几个字符串。方法一:这个问题可以看成是二十六进制转化为十进制。即ABC=A*(10^2)+B*(10^1)+C方法二:ABC=(A*10+B)*10+Z。此方法可以原创 2016-11-24 21:11:29 · 6499 阅读 · 1 评论 -
【算法】用程序验证规律,1,11,21,1211,111221
原文地址:http://blog.sina.com.cn/s/blog_537a13270100z2oj.html第一个数是:1;第二个数是:11;第三个数是:21;第四个数是:1211;第五个数是:111221;…………………………第二十七个数共2012位;问第十三个数有多少位?有人问我了一道找规律的题规律是:第转载 2016-11-22 11:07:37 · 12723 阅读 · 0 评论 -
构建乘积数组
题目:构建乘积数组 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。 时间复杂度为O(n)的解法 思路: 不妨定义C[i]=A[0]A[1]…A[i-1], D[i]=A[i+1]…*A[n-2]*A[n-1]. C[i]可以用自上而下的顺序计算出来,即C[原创 2016-11-27 10:38:40 · 304 阅读 · 0 评论 -
【算法】子数组的最大累加和/子矩阵的最大累加和问题
题一:子数组的最大累加和给定一个数组arr,返回子数组的最大累加和例如:arr=[1,-2,3,5,-2,6,-1], 所有的子数组中[3,5,-2,6]可以累加出最大的和12,所以返回12.【要求】arr的长度为N,时间复杂度为O(N),额外空间复杂度为O(1)【思路】用变量记录cur记录每一步的累加和,遍历到正数cur增加,遍历到负数cur减少。当cur作为产生最大原创 2016-11-25 22:37:19 · 1695 阅读 · 0 评论 -
[算法]判断一个链表是否有环及环开始的位置
这是一道很常见的面试问题,,只用两个变量通过O(n)的时间复杂度就可以解决。 Floyd cycle detection算法,也叫做tortoise and hare算法,龟兔算法吧。以下内容为对解法做一归纳,参考了stackoverflow论坛的讨论问题:如何检测一个链表是否有环,如果有,那么如何确定环的起点.龟兔解法的基本思想可以用我们跑步的例子来解释,如果两个人同时出发,如果赛道有环,那么快原创 2016-11-28 16:09:51 · 2555 阅读 · 0 评论 -
【Leecode】287Find the Duplicate Number找到重复的数
找到重复的数给一个数组包含n+1个整数,每个整数都是在1到n之间(包括n),证明至少存在一个重复数字。假设只有一个重复的数字,找出这个数不能修改这个数组,只能用一个常数的额外空间,运行时间复杂度少于n^2 只有一个重复的数,但是重复次数超过一次思路:采用二分搜索法,先选取n/2,按照抽屉原理,整个数组中如果小于等于n/2的数的数量大于n/2,说明1到n/2这个区间是肯定有重复数字的。注意原创 2016-11-28 09:53:32 · 570 阅读 · 0 评论