刷题记录
Sheldon_Liu88
爱自己的人生!
展开
-
基础排序方法总结与C++实现
基础排序方法总结基础排序方法与思路:实现的排序方法代码:主要理解 归并排序的递归终止条件 和 快速排序的Partition的思路和终止条件(单纯遍历的话会有很多冗余情况)。// MethodsOfSort.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <time.h>#include <stdlib.h>#include <string.h>const原创 2022-02-07 22:13:47 · 573 阅读 · 0 评论 -
【每日一题】74. 搜索二维矩阵 + 【剑指offer】10- I. 斐波那契数列
每日一题搜索二维矩阵,前几天做过,这次独立写出来了。class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int i = 0,j = size(matrix[0]) - 1; int flag = matrix[i][j]; //printf("%d",size(matrix));原创 2021-03-30 13:13:39 · 174 阅读 · 0 评论 -
【每日一题】190. 颠倒二进制位
颠倒二进制位题目:颠倒给定的 32 位无符号整数的二进制位。输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。方法一按位取反然后向右移位。一定要注意初始化为0原创 2021-03-30 12:20:52 · 177 阅读 · 0 评论 -
【剑指offer】61.旋转链表
题目给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]方法一先判断输入是否为NULL或者k0,不为空的话,找到链表的长度,然后向右移动k % length== 步。初步想的是用数组来实现。这样空间复杂度为O(n),时间复杂度为O(n).class Solution {public: ListNode* rotateRight(ListNode* head, int k原创 2021-03-27 22:57:36 · 81 阅读 · 0 评论 -
【剑指offer】06. 从尾到头打印链表
题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。输入:head = [1,3,2]输出:[2,3,1]方法一:遍历首先,判断是否是空链表,如果是,就返回NULL;如果不是,获取目标链表的长度,然后从后往前遍历。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(原创 2021-03-26 20:28:24 · 92 阅读 · 0 评论 -
【剑指offer】05.替换空格
题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。输入:s = “We are happy.”输出:“We%20are%20happy.”思路:先计算空格个数,然后扩容,然后从后往前依次平移string的元素,遇到空格就把 0 2 % 插进去。知道后面一个指针等于前面一个指针。class Solution {public: string replaceSpace(string s) { int count = 0; int le原创 2021-03-25 23:23:26 · 71 阅读 · 0 评论 -
【剑指offer】04.二维数组中的查找
题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16,22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回原创 2021-03-24 22:08:36 · 90 阅读 · 0 评论 -
【剑指offer】03.数组中重复的数字
题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入: [2, 3, 1, 0, 2, 5, 3]输出:2 或 3方法一:暴力遍历法class Solution {public: int findRepeatNumber(vector<int>& nums) {原创 2021-03-23 22:59:26 · 227 阅读 · 0 评论