Skip to content

Instantly share code, notes, and snippets.

View qiaoxu123's full-sized avatar
😄
Coding

xqiao qiaoxu123

😄
Coding
  • China
View GitHub Profile
@qiaoxu123
qiaoxu123 / can_socket.h
Last active July 11, 2018 06:39
candump.c文件实现与开发板CAN设备的访问,同时与远程服务器建立连接。 can_socket.h文件说明远程通信的相关协议
/* 定义通信报文类型 */
struct car_frame{
short int head; //报文头
short int identification; //报文标识
/* 手机APP */
short int Left; //左转
/************************************************************
* 功能:上行报文解析(仅作测试,发送APP)
* 注意:仅选择其中个ID作为测试
************************************************************/
struct down_APPframe frame_up_app_process(struct can_frame r_frame){
struct down_APPframe r_send_frame;
//-------------------------------------------------------------------
//ID:0x518
//-------------------------------------------------------------------
@qiaoxu123
qiaoxu123 / test.cpp
Last active September 28, 2018 00:48
测试C++ this指针的用法
#include <iostream>
using namespace std;
class Box {
private:
double length;
double breadth;
double height;
public:
#include <iostream>
#include <string>
using namespace std;
class Test {
int i;
public:
Test(int i) {
cout << "Test(int i)" << endl;
@qiaoxu123
qiaoxu123 / test1.cpp
Last active January 6, 2019 00:16
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 参考链接:https://blog.csdn.net/DERRANTCM/article/details/46736967 剑指offer面试题42
//思路:累积和(prefix_sum)
//时间:8 ms
class Solution {
public:
int maxSubArray(vector<int>& nums) {
if (nums.size() < 0) return 0;
int prefix_sum = 0;
int min_sum = 0;
int result = INT_MIN;
for (auto n : nums) {
@qiaoxu123
qiaoxu123 / test.cpp
Created November 7, 2018 00:41
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true
class Solution {
public:
bool isValid(string s) {
vector<char> stack;
stack.push_back(' ');
for(int i = 0;i < s.size();i++){
char item = s[i];
if(item == '(' || item == '[' || item == '{'){
stack.push_back(item);
}
@qiaoxu123
qiaoxu123 / test.cpp
Created November 7, 2018 00:42
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.empty())
return 0;
int len = 0;
for(int i = 1;i < nums.size();++i){
if(nums[i] != nums[len])
nums[++len] = nums[i];
}
@qiaoxu123
qiaoxu123 / test.cpp
Last active November 18, 2018 02:03
Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory. The order of e
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
if(nums.empty()) return 0;
int len = 0;
for(int i = 0;i < nums.size();++i){
if(nums[i] != val)
nums[len++] = nums[i];
}
return len;
@qiaoxu123
qiaoxu123 / test.cpp
Created November 7, 2018 00:44
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int len = digits.size();
vector<int> array = digits;
array[len - 1] += 1;
for(int i = len - 1;i > 0;i--){
if(array[i] >= 10){
array[i] = array[i] % 10;
array[i - 1] += 1;
@qiaoxu123
qiaoxu123 / test1.cpp
Created November 8, 2018 23:20
给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 示例: 输入: [4,3,2,7,8,2,3,1] 输出: [2,3]
//思路:第一次尝试,使用了额外空间来对数组元素进行计数
//时间:104 ms
class Solution {
public:
vector<int> findDuplicates(vector<int>& nums) {
vector<int> array = nums;
vector<int> find_array;
array.push_back(0);
for(int i = 0;i < array.size();++i)