一:题目
二:上码
class Solution {
public:int largestInteger(int num) {string str = to_string(num);for (int i = 0; i < str.size()-1; i++) {for (int j= i+1; j < str.size(); j++) {int num1 = str[j]-'0';int num2 = str[i]-'0';if (num1%2 == num2%2) {//这里我们控制的是奇数还是偶数,当num2是偶数的时候我们只跟str中后面的偶数if (num1 > num2) swap(str[i],str[j]); //进行交换}}}int nums = stoi(str);return nums;}
};
三:复习冒泡法
绝绝子 无语了 菜鸡杰 就会一种冒泡的排序的写法,但是放到这道题上 就是不能全AC,看了别人的题解,原来冒泡另外一种写法,是可以AC的,我写的冒泡是挨个将两个数比较大小,进行交换,但是在这里控制不好,奇偶变化;但是冒泡的另外一种写法,拿每个数跟后面的数遍历,把最大的数找到,然后再找第二大的数。。。。。人家这种写法牛逼的是可以方便控制奇偶数,只要加个判断就可以 了 哎 菜到难以置信的杰 就是我菜鸡杰了
#include<bits/stdc++.h>
using namespace std;void type1(vector<int>&v) {for (int i = 0; i < v.size()-1; i++) {//表示趟数,我们每次把目标值放到最前面 for (int j = i+1; j < v.size(); j++) {if (v[j] > v[i]) swap(v[i],v[j]); } }}void type2(vector<int>&v) {for (int i = 0; i < v.size()-1; i++) {for (int j = v.size()-2; j >= i; j--) {if (v[j+1] > v[j]) swap(v[j+1],v[j]);}}
} int main() {vector<int>v(5);for (int i = 0; i < 5; i++) {int nums;cin >> nums;v.push_back(nums);}type2(v);for (int i = 0; i < 5; i++) {cout << v[i] << ' ';} }