leetcode
sifanchao
这个作者很懒,什么都没留下…
展开
-
字符串转换整数 (atoi)
思路: 去掉前导空格 处理正负号 识别数字,处理越界情况。 /** * @param {string} str * @return {number} */ var myAtoi = function(str) { var charArr = str.split("") var len = str.length var index = 0 // 去掉前导空格 while(index < len && charArr[index] == .原创 2020-05-29 01:28:49 · 178 阅读 · 0 评论 -
整数反转
class Solution { public: int reverse(int x) { long n = 0; while(x){ n = n * 10 + x % 10; x /= 10; } return (int)n == n ? (int)n : 0; } };原创 2020-05-28 23:32:22 · 154 阅读 · 0 评论 -
Z 字形变换
class Solution { public: string convert(string s, int numRows) { vector<string> temp(numRows); string res; if(s.empty() || numRows < 1) return res; if(numRows == 1) return s; for(int i = 0; i < s.siz.原创 2020-05-28 01:08:34 · 220 阅读 · 0 评论 -
最长回文子串
方案一:暴力 依次遍历字符串,取出一组。然后将取出的子串进行反转。比较两个字符串是否相等。如果相等,则记录此时的长度。知道遍历完所有字符串的可能性。返回max最大长度即可 /** * @param {string} s * @return {string} */ var longestPalindrome = function(s) { if(s.length < 2){ return s } var max = s[0] for(var i =.原创 2020-05-27 00:47:25 · 117 阅读 · 0 评论 -
寻找两个正序数组的中位数
方案一:暴力 新建一个大小为(m+n)的数组,将两个数组的值插入到新的数组,然后进行排序,最后根据奇偶返回中位数。 class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { vector<int> nums3; nums3.insert(nums3.end(),nums1.begi.原创 2020-05-26 00:33:05 · 785 阅读 · 0 评论 -
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
因为字符串是由每个字符组成,而字符一共只有128个。所以我们创建一个字符数组(new Array(128)),将字符串的字符一个一个先进行ASCII转化,如果当前字符所对应字符数组的值为0,那么说明该字符没有出现,此时将此位置置为1。依次进行比较,如果字符对应字符数组的对应位置值为1,那么说明该字符为重复的,此时返回遍历值i即可。 /** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(原创 2020-05-24 20:21:43 · 943 阅读 · 0 评论 -
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的
思路: 1.判断链表是否为空,如果是空,返回相反的链表就是结果 2.依次取出两个链表的值进行相加,如果不用进位,就依次插入下一个节点(newList.next=函数(l1.next,l2.next)) ,递归地调用),然后返回链表即可。 3.如果计算进位,先算这一位进位后的结果newList;再计算下一位要加多少carry;其次在考虑不进位的条件下,下一位的结果current;最后把carry 和 current 做加和,也就是下一位数插入下一个节点(newList.next=函数(carry, curre原创 2020-05-24 11:23:48 · 793 阅读 · 0 评论 -
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 方案一:暴力求解 直接进行嵌套循环比较两数的和是否为目标值 如果是,对应值的下标 此时时间复杂度因为进行嵌套循环,复杂度为O(n^2) /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums, target) { f原创 2020-05-23 20:23:25 · 2480 阅读 · 0 评论