摘要:
1 从尾到头打印链表 剑指offer_06题 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 输入:head = [1,3,2] 输出:[2,3,1] /** * Definition for singly-linked list. * function ListNode(va 阅读全文
摘要:
逆序输出这个链表,返回的是数组,可以用数组的unshit /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @p 阅读全文
摘要:
输入:s = "We are happy." 输出:"We%20are%20happy." 思路:遍历一遍即可 /** * @param {string} s * @return {string} */ var replaceSpace = function(s) { let res = ''; f 阅读全文
摘要:
思路:从右上角开始寻找: 由于递增的规律 假设>target , j--, < targe i++, /** * @param {number[][]} matrix * @param {number} target * @return {boolean} */ var findNumberIn2D 阅读全文
摘要:
样例 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 模拟题: 每个节点相加即可,但是需要进位,本题按照逆序来输出的 /** * Definition for singly-linked list. * funct 阅读全文
摘要:
思路,采取map存储每个值,键为该数字,存储,如果已经存在 则返回 var findRepeatNumber = function(nums) { let map = new Map(); for(let i = 0; i < nums.length; i ++){ if(map.has(nums[ 阅读全文
摘要:
归并排序的基本模板 public static void merge_sort(int[] arr, int l, int r){ if(l >= r) return ; int mid = l + r >> 1; merge_sort(arr,l,mid); merge_sort(arr,mid+ 阅读全文
摘要:
快速排序的思想 基于分治的思想: 步骤: 确定分界点 q[l], q[l+r >> 1], q[r] 调整区间 递归处理两个子区间 快速排序的基本模板 //手写一个快排 public static void quick_sort(int[] arr, int l, int r){ if(l >= r 阅读全文
摘要:
class Solution { public int maxProfit(int[] prices) { if(prices == null || prices.length == 0) return 0; int res = 0; int minv = prices[0]; for(int i 阅读全文
摘要:
class Solution { public boolean isStraight(int[] nums) { int joker = 0; Arrays.sort(nums); for(int i = 0; i < 4; i ++){ if(nums[i] == 0) joker ++; els 阅读全文