leetcode力扣刷题
算法小白刷题
HelloFuckingWorld
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcodeHOT100:T7合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。// 方法一:构建新链表时,先创建一个空的头节点,并进行浅拷贝,在拷贝对象上延伸节点,这样通过头节点.next就能获取整条链表(不包含空的头节点)。// 迭代+双指针var mergeTwoLists = function(list1, list2) { let head = new ListNode(); // 头节点 let pre = head; // 前指针 while(原创 2022-04-27 22:28:01 · 1055 阅读 · 0 评论 -
leetcodeHOT100:T20有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。思路:使用js中数组的栈方法,左括号入栈,右括号匹配后出栈。匹配过程中,如果最近入栈的括号与正在判断的右括号不是一对,则返回false,如果字符串遍历结束,但栈中还有剩余元素,一定是左括号的数量多余右括号,返回false。/** * @param {string} s * @return {boolean} */原创 2022-04-27 18:46:54 · 408 阅读 · 0 评论 -
leetcodeHOT100:T4寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。var findMedianSortedArrays = function(nums1, nums2) { let res = 0; let addArr = nums1; if(nums2.length !== 0){ nums2.forEach(item => {原创 2022-04-25 23:23:15 · 262 阅读 · 0 评论 -
leetcodeHOT100:T3无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。var lengthOfLongestSubstring = function(s) { // 滑动窗口法能够实现左右两个标识符独立移动 const n = s.length; if(n <= 1) return n; let leftFlag = 0; let rightFlag = 0; // 存储每次移动后的字符 let temp = new Set(); l原创 2022-04-25 09:41:53 · 325 阅读 · 0 评论 -
leetcodeHOT100:T2两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头var addTwoNumbers = function(l1, l2) { let resLN = new ListNode(); // leetcode定义了链表节点 let res = resLN; // 这边浅拷贝的作用是为了返回值能够完整,否则ne原创 2022-04-24 21:35:10 · 177 阅读 · 0 评论 -
leetcode1:两数之和
/** * @param {number[]} nums * @param {number} target * @return {number[]} */// twoSum(nums,target);var twoSum = function(nums, target) { // 方法一: // var result=[]; // // 遍历所给数组,对每一个数找到差是否存在 // for(var i=0; i<nums.length; i++){ .原创 2021-12-15 10:11:25 · 420 阅读 · 0 评论 -
浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-07算法:曹冲称象
import sysimport itertoolsfor line in sys.stdin:#获取输入 a = line.split() ele = int (a[0]) del (a[0]) a = list (map (int, a)) flag=0 sumA=0 for i in range(0,len(a)): sumA+=a[i] if sumA<ele: print ('-1') .原创 2021-07-31 16:43:23 · 441 阅读 · 1 评论 -
浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-06算法:波浪树
import sysimport mathfor line in sys.stdin: # 获取输入 a = line.split() a = list(map(int, a)) if a[0] == 0: print (False) continue # 填充为完全二叉树 layer = int(math.log2(len(a))) + 1 n = 2 ** layer - 1 zero = [0] *..原创 2021-07-31 16:42:38 · 391 阅读 · 0 评论 -
2021-07-31浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-05算法:昨夜此花
import sysfir = input ().split ()n = int (fir[0]) # 序列长度 intm = int (fir[1]) # 操作的个数 每次选择不同的k intq = int (fir[2]) # 询问的个数 intK = input ().split () # 表示每次操作的k str k总数为mP = input ().split () # 表示每次询问的p str p总数为qK = list(map(int, K))P = list(m...原创 2021-07-31 16:41:44 · 234 阅读 · 0 评论 -
浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-04算法:养鱼
import sysT = int(input())for i in range(0,T): N = int(input()) dicX = {} ##姓氏字典 dicM = {} ##名字字典 for line in range(0,N): #获取输入 a = input().split() if a[0]=='0': if a[1] in dicX: dicX[a[1]...原创 2021-07-31 16:40:29 · 286 阅读 · 0 评论 -
浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-03算法:小i的生长数
import sysT = int (input ())for t in range (0, T): a = input ().split () x = a[0] x = list (x) n = len (x) d = int (a[1]) K = int (a[2]) sum = [1] * (n) numLen = 0 flag = 0 for j in range (n - 1, -1, -1): ...原创 2021-07-31 16:39:15 · 239 阅读 · 0 评论 -
浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-02算法:博弈论
import sysT = int(input())for t in range(0,T): N = int(input()) a = input().split() findMin=[-1]*(N+1) ##存正确排序的每个数 result=0 last=0 for n in range(0,N): num=int(a[n]) if num<N and findMin[num]!=num: ...原创 2021-07-31 16:38:13 · 231 阅读 · 0 评论 -
浦发银行算法接力赛总结/python语言/算法+建模/用户行为预测-01算法:三国杀
import sysT = int(input())for i in range(0,T): N = int(input()) a = input() a = list(a) count = 0 i=1 while i<N: if a[i-1]=='a' and a[i]=='d': count+=2 a.pop(i-1) a.pop(i-1) ...原创 2021-07-31 16:37:02 · 366 阅读 · 0 评论 -
leetcode387:字符串中的第一个唯一字符
class Solution { public int firstUniqChar(String s) { char[] wordsCharArr = s.toCharArray(); int length = s.length(); // int[] flagWords = new int[length]; int index = -1; for(int i = 0; i < length; i++){ .原创 2021-07-13 16:35:17 · 172 阅读 · 0 评论 -
leetcode151:翻转字符串里的单词
class Solution { public String reverseWords(String s) { // 翻转所有的单词,非空格字符分割单词,两个单词间有着至少一个空格,之前翻转是按照单词中字母进行翻转,本题中需要将字符串中的所有单词按照在字符串中的顺序进行翻转,但是不改变单词的构成 int length = s.length(); // 先找到所给字符串中每一个单词的开始位置并记录,同时也找到每个单词的结束位置 int.原创 2021-07-06 16:49:53 · 158 阅读 · 0 评论 -
leetcode557:反转字符串中的单词Ⅲ
class Solution { public String reverseWords(String s) { // 先将字符串转换字符串数组 char[] s2CharArr = s.toCharArray(); int length = s2CharArr.length; // 找到每个单词的开始位置和结束位置 int[] startPos = new int[length]; int star.原创 2021-07-05 10:22:15 · 166 阅读 · 0 评论 -
leetcde541:反转字符串Ⅱ
class Solution { public String reverseStr(String s, int k) { char[] a = s.toCharArray(); for (int start = 0; start < a.length; start += 2 * k) { int i = start, j = Math.min(start + k - 1, a.length - 1); while.原创 2021-07-04 10:25:30 · 180 阅读 · 0 评论 -
leetcode344:反转字符串
class Solution { public void reverseString(char[] s) { // 一个指针指向字符数组中的第一个字符,一个指针指向支付数组中的最后一个字符 // 每一次将两个指针所指的字符进行交换,交换的方法为中间值交换。交换完毕后,头指针向后移动,尾指针向前移动 // 当两个指针相遇的时候终止 int length = s.length; int startPointIndex =.原创 2021-07-02 14:09:03 · 149 阅读 · 0 评论 -
leetcode58:最后一个单词的长度
class Solution { public int lengthOfLastWord(String s) { // 寻找每个单词开始的位置 int length = s.length(); int[] startPoisition = new int[length]; int[] endPoisition = new int[length]; int startPoisitionIndex = 0; .原创 2021-07-01 12:18:15 · 152 阅读 · 0 评论 -
leetcode434:字符串中的单词数
class Solution { public int countSegments(String s) { int length = s.length(); if(length == 0){ return 0; } int startWordCount = 0; for(int i = 0; i < length; i++){ if((i==0 || s.charA.原创 2021-06-29 10:53:17 · 130 阅读 · 0 评论 -
leetcode14:最长公共前缀
class Solution { public String longestCommonPrefix(String[] strs) { int length = strs.length; if(length == 0){ // 无字符串 return ""; }else if(length == 1){ // 有一个字符串 return .原创 2021-06-27 21:25:05 · 160 阅读 · 0 评论 -
leetcode125:验证回文串
class Solution { public boolean isPalindrome(String s) { boolean flag = true; // 对原字符串进行单个字符的转化 int len = s.length(); String startString = ""; for(int i = 0 ; i < len; i++){ char single = s.charAt.原创 2021-06-26 14:15:00 · 206 阅读 · 0 评论 -
leetcode238:除自身以外数组的乘积
class Solution { public int[] productExceptSelf(int[] nums) { int len = nums.length; int[] L = new int[len]; // 左边元素的乘积 int[] R = new int[len]; // 右边元素的乘积 int[] res = new int[len]; // 结果数组 // 左乘积赋值 .原创 2021-05-06 16:46:02 · 165 阅读 · 0 评论 -
leetcode304:二维区域和检索
class NumMatrix { int[][] sums; public NumMatrix(int[][] matrix) { int rows = matrix.length; // 行数 if(rows > 0){ int cols = matrix[0].length; // 列数 sums = new int[rows][cols + 1]; // sums[.原创 2021-04-25 09:44:34 · 178 阅读 · 0 评论 -
leetcode303:区域和检索
(前缀和的问题)class NumArray { int[] sums; public NumArray(int[] nums) { int len = nums.length; sums = new int[len]; sums[0] = nums[0]; for(int i = 1; i < len; i ++){ sums[i] = sums[i-1] + nums[i];原创 2021-04-23 09:53:34 · 147 阅读 · 0 评论 -
leetcode289:生命游戏
public class Solution { public void gameOfLife(int[][] board) { int rows = board.length; int cols = board[0].length; // board副本boardCopy int[][] boardCopy = new int[rows][cols]; for(int row = 0; row < rows..原创 2021-04-22 11:28:38 · 220 阅读 · 0 评论 -
leetcode73:矩阵置零
class Solution { public void setZeroes(int[][] matrix) { int rows = matrix.length; int cols = matrix[0].length; // 创建一个新的矩阵,其中存放标志位,初始值都是0,经过重新赋值零之后,标志位改为1 int[][] flagMatrix = new int[rows][cols]; // 遍历初始矩阵,.原创 2021-04-21 20:46:10 · 142 阅读 · 0 评论 -
leetcode566:旋转图像
class Solution { public void rotate(int[][] matrix) { // (0,0) -> (0,2) // (0,1) -> (1,2) // (0,2) -> (2,2) // (1,0) -> (0,1) // (1,1) -> (1,1) // (1,2) -> (2,1) // (2,0) -&g.原创 2021-04-20 21:05:29 · 131 阅读 · 0 评论 -
leetcode566:重塑矩阵
class Solution { public int[][] matrixReshape(int[][] nums, int r, int c) { // 首先判断reshape操作数是否可行合理,通过两者间的元素个数是否相等判断 int countPre = nums.length * nums[0].length; // 原矩阵的元素个数 int countPost = r * c; // 重塑矩阵的元素个数 // 判断.原创 2021-04-19 09:54:30 · 181 阅读 · 0 评论 -
leetcode498:对角线的遍历
class Solution { public int[] findDiagonalOrder(int[][] matrix) { if (matrix == null || matrix.length == 0) return new int[0]; int m = matrix.length; // 原数组的行数 int n = matrix[0].length; // 原数组的列数 int[] nums = new int[m * n.原创 2021-04-16 09:14:48 · 151 阅读 · 0 评论 -
leetcode59:螺旋矩阵Ⅱ
class Solution { public int[][] generateMatrix(int n) { // 二维数组规格 int[][] resultArr = new int[n][n]; // 定义四个边界 int up = 0; // 上边界 int bottom = n-1; // 下边界 int left = 0; // 左边界 int right = n-1.原创 2021-04-15 21:26:14 · 157 阅读 · 0 评论 -
leetcode54:螺旋矩阵
class Solution { public List<Integer> spiralOrder(int[][] matrix) { int m = matrix.length; int n = matrix[0].length; List<Integer> resultList = new ArrayList<>(); // 返回的结果列表 // 定义四个边界 int up ..原创 2021-04-14 11:57:19 · 130 阅读 · 0 评论 -
leetcode396:旋转数组
class Solution { public int maxRotateFunction(int[] nums) { int n = nums.length; int max = Integer.MIN_VALUE; for(int Fnumber = 0;Fnumber < n;Fnumber ++){ // F(0) ~ F(n-1) int[] reverseArray = new in.原创 2021-04-13 09:30:33 · 224 阅读 · 0 评论 -
leetcode189:旋转数组
class Solution { public void rotate(int[] nums, int k) { int length = nums.length; //if(k == length) return nums; // 旋转的个数等于数组长度 if(k <= length){ // 旋转个数小于数组长度,旋转个数可能为0个! int[] resultArr = new int[l..原创 2021-04-12 21:22:26 · 136 阅读 · 0 评论 -
leetcode419:甲板上的战舰
class Solution { public int countBattleships(char[][] board) { int count = 0; for(int row = 0;row < board.length; row ++){ for(int column = 0;column < board[0].length; column ++){ if(board[row][column].原创 2021-04-12 09:21:23 · 185 阅读 · 0 评论 -
leetcode598:范围求和Ⅱ
class Solution { public int maxCount(int m, int n, int[][] ops) { int[][] originArr = new int[m][n]; // 遍历每一个操作数 for(int index = 0; index < ops.length;index ++){ int[] op = ops[index]; // 获取每一个操作数 i.原创 2021-04-10 16:14:25 · 165 阅读 · 0 评论 -
leetcode661:图片平滑器
class Solution { public int[][] imageSmoother(int[][] M) { int rowTotal = M.length; int columnTotal = M[0].length; int[][] result = new int[rowTotal][columnTotal]; // 遍历每一个元素, for(int row = 0;row <.原创 2021-04-09 11:16:24 · 219 阅读 · 0 评论 -
leetcode119:杨辉三角Ⅱ
class Solution { public List<Integer> getRow(int rowIndex) { List<List<Integer>> result = new ArrayList<>(); List<Integer> content = new ArrayList<>(); content.add(1); result.add(con.原创 2021-04-08 09:35:05 · 180 阅读 · 0 评论 -
leetcode118:杨辉三角
class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<>(); if(numRows == 0){ return result; } List<Integer> conten.原创 2021-04-07 10:54:11 · 138 阅读 · 0 评论 -
leetcode283:移动零
class Solution { public void moveZeroes(int[] nums) { if(nums != null && nums.length != 0){ int temp = 0; for(int i = 0;i < nums.length - 1;i ++){ if(nums[i] == 0){ int z =.原创 2021-04-03 10:21:31 · 136 阅读 · 0 评论
分享