Consider the function defined by y = x^(sin(x)^sin(x)). Observe its graph. Find an increasing function which passes through each of its local maximums, and another increasing function which passes through each of its local minimums.
Extra credit: You’ll notice the graph isn’t drawn for x-values which make sin(x) negative. This is because most of those values make the function undefined - though it is defined for infinitely many points in those intervals, it just also has infinitely many holes. Since it lacks continuity here, it has no true local maxes or local mins, and doesn’t impact the original problem. We can nonetheless cheat and fill in the holes by expanding the function to these regions with y = x^|sin(x)|^sin(x) (Using x^-|sin(x)|^sin(x) should also be technically valid, but is being ignored because it’s discontinuous with the rest of the graph and not as pretty, but will be mentioned in my solution). Doing so adds more local maxes and local mins. The new local mins should line up with your function that finds the local maxes for the original function - but, find a new function which hits all of the new local maxes.
I’ve posted my solution.
The question of why the bounds swap isn’t too relevant to the problem, since there are no maxes or mins below x = 1 - but the reason they swap is because numbers between 0 and 1 get larger with smaller powers, and smaller with larger powers. Think of how 0.5^2 = 0.25 - so the more a (positive) power is biased toward “rooting” a number in this interval (biased toward 0), the larger the result will be - so the minimum of g now produces a max value, and the max of g yields a minimum value.
Edit: If it helps, you can also think of numbers between 0 and 1 as being numbers larger than 1, but with a negative power. So something like 0.5^2 is equivalent to (2^-1)^2 = 2^-2. So larger powers become lesser powers that way.
Really, it’s for the same reason the graphs of 2^x and 0.5^x are reflections of each other